
OpenGL
文章平均质量分 52
fengyuzaitu_126_com
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
GLUT and OpenGL Utility Libraries
翻译:https://www.opengl.org/resources/libraries/开发者给OpenGL提供大量的窗口系统和接口库,与此同时,科学研究和高质量的库都建立在OpenGL之上GLUT说明GLUT是OpenGL实用库,为OpenGL的编程提供一个独立的系统窗口。GLUT为OpenGL提供一个简单的窗口应用程序接口。主要是为了更加简单的学习和探索OpenGL编程其他的一些类GLUT的窗口系统工具...原创 2021-09-13 14:53:48 · 372 阅读 · 0 评论 -
解决 Missing GL version
原因默认情况下需要调用函数glutCreateWindow("GLEW Test");指定一个OpenGL的context代码#include <GL/glew.h>#include <GL/glut.h>#include <stdio.h>#include <stdlib.h>#include <iostream>using namespace std;#pragma comment(lib, "...原创 2021-09-13 14:44:31 · 1147 阅读 · 0 评论 -
渲染多边形和填充多边形
填充多边形:调整 glBegin(GL_POLYGON);#include <windows.h>#include <gl/gl.h>#include <gl/glu.h>#include <gl/glut.h>//////////////////////////////////void myInit(){ glClearColor(1.0,1.0,1.0,0.0); glMatrixMode(GL_PROJE...原创 2021-09-08 17:15:24 · 438 阅读 · 0 评论 -
GLUT环境部署
1 是什么GLUT代表OpenGL应用工具包(OpenGL Utility Toolkit),是一个与窗口系统无关的工具包。它作为AUX库的功能更强的替代品,用于隐藏不同窗口系统API的复杂性。GLUT的子程序的前缀使用”glut”。再次详细说明要使用OpenGL进行绘图,首先必须有一个C/C++编译器,然后还必须安装了OpenGL的头文件和库。一般来说包括3个库及其相关文件(库文件.lib,头文件.h,动态链接库文件.dll):OpenGL--这个是基本的API工具,必须有的GLU--原创 2021-09-07 11:25:35 · 230 阅读 · 0 评论 -
3D 架设场景
指定视口glViewport指定投影变换glMatrixMode(GL_PROJECTION);glLoadIdentity();gluPerspective(30, 1, 0.1, 50);指定视图变换glMatrixMode(GL_MODELVIEW);glLoadIdentity();gluLookAt(0.0f, 0.0f, 5.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f);gluPerspective(GLdoubl原创 2021-09-07 11:18:20 · 87 阅读 · 0 评论 -
gluOrtho2D与比例尺之间的关系
说明 gluOrtho2D(0.0, WINDOWWIDTH , WINDOWHEIGHT/2, 0.0);第三个参数取其一半,打点的Y坐标扩大了一倍.渲染直线的情况下,通过将第二参数和第三参数进行按比例尺放缩,实际上,可达到渲染图形缩放的效果。所以gluOrtho2D函数定义了屏幕坐标多少个单位像素表示投影矩阵的单位一代码#include <gl/glut.h>#include <Windows.h>#define WINDOWHEIGHT 4...原创 2021-08-31 11:10:46 · 177 阅读 · 0 评论 -
二维图像到二维屏幕的显示,对应屏幕坐标
说明默认情况下,中心点在屏幕的中心,范围都是从[-1,1],所以物体的实际坐标映射到屏幕坐标需要一个转换过程,上文中描述到使用gluOrtho2D函数通过正投影,将物理坐标映射到屏幕坐标,但是坐标的原点在左下角,一般情况下,屏幕的原点都是从左上角开始,因此在上述的所有例子中,都需要重新计算Y轴的坐标,屏幕的高减去点Y轴分量。现在通过重新设置正射投影的左下角坐标和右上角的坐标,建立一一对应的关系,而不再需要进行任何的转换,类似于旋转相机,达到调整坐标系的作用代码#include <...原创 2021-08-31 11:06:26 · 323 阅读 · 0 评论 -
OpenGL 渲染点GL_POINTS
场景渲染点的时候,如果尺寸比较大,实际上是一个矩形,需要采用反走样技术。使用反走样要启用混合操作, 确保显卡的反走样设置是用户控制或者打开的。代码#include <GL/glut.h>void myDisplay(void){ glClearColor(1.0f, 1.0f, 1.0f, 0.0f); glClear(GL_COLOR_BUFFER_BIT); glEnable(GL_POINT_SMOOTH); glEnable(G...原创 2021-08-10 14:23:07 · 2952 阅读 · 0 评论 -
OpenGL 渲染直线
说明渲染线段的时候指定使用GL_LINES,而不是GL_LINE,线段的宽度跟点的尺寸一样,都有一个最大的限制,如果要渲染一条100像素宽的线段只能够采用渲染填充矩形的方式代码#include <windows.h>#include <gl/gl.h>#include <gl/glu.h>#include <gl/glut.h>//////////////////////////////////void myInit...原创 2021-08-10 14:13:37 · 270 阅读 · 0 评论 -
OpenGL 世界坐标系
世界坐标系在OpenGL中,世界坐标系是以屏幕中心为原点(0, 0, 0),且是始终不变的。你面对屏幕,你的右边是x正轴,上面是y正轴,屏幕指向你的为z正轴。长度单位这样来定:窗口范围按此单位恰好是(-1,-1)到(1,1),即屏幕左下角坐标为(-1,-1),右上角坐标为(1,1)。这是采用了归一化的结果当前绘图坐标系是绘制物体时的坐标系。程序刚初始化时,世界坐标系和当前绘图坐标系是重合的。当用glTranslatef(),glScalef(), glRotatef()等对当...原创 2021-08-06 17:26:58 · 847 阅读 · 0 评论 -
OpenGL glMaterialfv材质设置 用例
说明如果非常清楚的知道物体的材质,并且能够在OpenGL的材质表中找到合乎要求的参数设置,就可以避免指定物体的颜色值,某些情况下,指定物体的渲染颜色,使得物体的实际效果大打折扣 { glPushMatrix(); glTranslatef(1.0, 0.0, 0.0); //黄铜 GLfloat mat_ambient[] = { 0.021500, 0.174500, 0.021500, 0.550000}; GLfloat mat_diff...原创 2021-08-06 17:19:30 · 1453 阅读 · 0 评论 -
OpenGL 贝塞罗曲线渲染
给定点P0,P1,线性贝兹曲线是这两点之间连线的点,方程式如下:B(t) = P0 + (P1 - P0)t t取[0,1];假设P0(x0, y0),P1(x1, y1), Pn((1-t)x0+tx1),(1-t)y0+ty1)1)通过点在直线上,斜率相等证明一阶贝塞罗曲线是一直线K(PnP0) = K(PnP1)这种方法相对简单2)通过P0P1两点根据点斜式求出直线的方程,然后将Pn点代入,同样可以证明,相对繁琐void myDisplay(){ glCl.原创 2021-07-16 09:47:51 · 150 阅读 · 0 评论