OpenGL游戏编程设计
若水微韧
专注于3d游戏开发,专注于C++11、STL、win32、mfc、OpenGL编程,开发属于自己3D的游戏
展开
-
OpenGL多视口变换函数:glViewport使用
OpenGL多视口变换函数:glViewport使用glViewport是OpenGL中的一个函数。计算机图形学中,在屏幕上打开窗口的任务是由窗口系统,而不是OpenGL负责的1.功能glViewport在默认情况下,视口被设置为占据打开窗口的整个像素矩形,如图1,窗口大小和设置视口大小相同,所以为了选择一个更小的绘图区域,就可以用glViewport函数来实现这一变换,在原创 2015-11-07 13:49:16 · 7291 阅读 · 0 评论 -
C语言中动态申请连续的二维数组
可以采用多申请一些指针,然后这一些指针分别指向后面数据区中对应的位置,如一个3*4的int类型数组,我们先申请大小为sizeof(int*) * 3 + 3 * 4 * sizeof(int)的一维数组设为arr。然后arr[0]存放指向arr + sizeof(int*) * 3这个位置的指针,arr[1]存放指向arr + sizeof(int*) * 3 + 4 * sizeof(int原创 2016-03-12 10:28:42 · 2074 阅读 · 1 评论 -
ue4 中KismetProceduralMeshLibrary SliceProceduralMesh的原理
代码:void UKismetProceduralMeshLibrary::SliceProceduralMesh(UProceduralMeshComponent* InProcMesh, FVector PlanePosition, FVector PlaneNormal, bool bCreateOtherHalf, UProceduralMeshComponent*& OutOtherHa翻译 2017-02-16 14:48:22 · 2061 阅读 · 1 评论 -
Frustum Culling in OpenGL视锥体裁剪剔除
Frustum Culling in OpenGL视锥体裁剪剔除在一个比较复杂的场景游戏中,游戏的运行效率至关重要,因此视锥体的剔除将会解决这个问题:以下资料摘自国外文献:以此来共同探讨What's the view frustum?The view frustum is the volume of space that includes everything that is翻译 2017-02-09 16:59:23 · 4553 阅读 · 0 评论 -
Win32+OpenGL计算机图形学光照阴影算法(参照超级宝典4改编)
#pragma once#include #include "math3d.h"#define GLUT_DISABLE_ATEXIT_HACK#include // 旋转变量static float xRot = 0.0f;static float yRot = 0.0f;float g_cameraX=0.0, g_cameraY=2.0, g_came原创 2017-02-09 17:01:27 · 1675 阅读 · 0 评论 -
德罗内三角形剖分生成以及opengl显示
Delaunay 三角网的优点是结构良好, 数据结构简单, 数据冗余度小, 存储效率高, 与不规则的地面特征和谐一致,可以表示线性特征和迭加任意形状的区域边界, 易于更新,可适应各种分布密度的数据等; 它的局限性是, 算法实现比较复杂和困难, 但现在已经有了较多成熟的实现算法。 Delaunay 三角网是Voronoi图的伴生图形, 它们两个是被普遍接受和采用的分析研究区域离散数据的有力工具。它是原创 2017-12-06 22:13:25 · 1220 阅读 · 0 评论 -
大学里关于计算机图形学的感悟《自嘲》
临近考试了。有一天,我去图书馆看书,相识了一个学电子专业的同学。刚找到座位坐下便一眼看到一个很“熟悉”的人,这哥们与我真投缘,二话不说便自然而然地结交为挚友。为此,装在彼此心中关于专业中比较闷骚的见解一时间在对话中表现地淋漓尽致。哥们: 你是哪个专业的?我: 计算机的。andyou?哥们: 我是学电子的。计算机专业听起来不错嘛,你是计算机哪个方面的?我: Cod原创 2016-04-03 23:02:35 · 3652 阅读 · 0 评论 -
光照模型的计算方式总结(1.Diffuse分量2.Specular分量 Phong model和Blinn-Phong model (Or Blinn))
光照模型的计算方式总结(1.Diffuse分量2.Specular分量 Phong model和Blinn-Phong model (Or Blinn)),在计算机图形学以及游戏开发过程中光照是必不可少的,研究光照模型就离不开漫反射分量、镜面反射分量、环境光分量等,在这里以opengl里的光照计算方式Blinn-Phong model (Or Blinn)来探讨光照模型的计算方法总结如原创 2015-11-02 16:19:55 · 4924 阅读 · 0 评论 -
视图模型转换矩阵的推导也是关于gluLookAt函数即视图转换矩阵的推导及代码实现
关于gluLookAt函数即视图转换矩阵的推导及代码实现视图模型转换矩阵的推导也是关于gluLookAt函数即视图转换矩阵的推导及代码实现 gluLookAt函数提供给用户完成模式变换(model-view transformation)中,在将模型坐标系转换都世界坐标系后,进行世界坐标系到照相机坐标系的转换。实际上,照相机的定位也是在世界坐标系下定义的,这里的转换,可以理解为:原创 2015-11-06 23:45:43 · 4728 阅读 · 0 评论 -
OpenGL模型视图变换、投影变换、视口变换总结
产生目标场景的过程类似于用照相机进行拍照:(1)把照相机固定在三角架上,并让他对准场景 从不同位置观察场景(视图变换)(2)对场景进行安排,使各个物体在照片中的位置是我们所希望的 移动,旋转或者放大缩小场景中的物体(模型变换)(3)选择照相机镜头,并调整放大倍数(调焦) 显示物体时,可以选择物体是如何投影到屏幕上(投影变换)(4)原创 2015-11-06 16:27:34 · 1931 阅读 · 0 评论 -
float与double的精度值在编程中以及openGL超级宝典(第四版)及代码的错误之处#define M3D_INV_PI_DIV_180 (57.2957795130823229)
今天在研究图形学的旋转矩阵时。推导计算发现opengl超级宝典的错误之处openGL超级宝典(第四版)及代码的错误之处#define M3D_INV_PI_DIV_180 (57.2957795130823229)他的意思很明白是180/PI但是其倒数第二位数字2是错误的计算结果应该是#define M3D_INV_PI_DIV_180 (57.2957795130823209)是0而原创 2015-10-23 21:56:32 · 1216 阅读 · 0 评论 -
OpenGL Blend 和OpenGL中alpha测试GL_ALPHA_TEST
OpenGL Blend 和OpenGL中alpha测试GL_ALPHA_TEST 像素的Alpha值可以用于混合操作什么是混合呢?简单地说,就是当你透过一块红色的玻璃去看一个绿色的球时,此时就会发生颜色的混合现象,你看到的球的颜色将是两者的混合颜色。这在OpenGL里面有特殊的处理颜色混合的函数,比较常用GL_BLEND要使用OpenGL的混合功能,调用:glEnable(GL原创 2015-11-11 19:42:50 · 3840 阅读 · 0 评论 -
三维裁剪(OpenGL)glClipPlane(GLenum plane, const GLdouble *equation)
在opengl里的裁减函数实现很容易,//void glClipPlane(GLenum plane, const GLdouble *equation);//定义一个裁剪平面。equation参数指向平面方程Ax + By + Cz + D = 0的4个系数。//equation = (0, - 1,0, 0),前三个参数(0, - 1, 0)可以理解为法线向下,//只有向下的,原创 2015-10-26 20:02:58 · 4970 阅读 · 0 评论 -
错误 1 error LNK2019: 无法解析的外部符号 __imp____glutInitWithExit@12,该符号在函数 _glutInit_ATEXIT_HACK@8 中被引用
解决方案:在主cpp文件里加上宏定义:#define GLUT_DISABLE_ATEXIT_HACK且位于#include 之前成功解决此问题原创 2015-10-26 17:13:41 · 1088 阅读 · 0 评论 -
vs2010 vs2013等vs中如何统计整个项目的代码行数
vs2010 vs2013等vs中如何统计整个项目的代码行数在一个大工程中有很多的源文件和头文件,我如何快速统计总行数?------解决方案--------------------b*[^:b#/]+.*$^b*[^:b#/]+.*$ctrl + shift + F 查找选项选 正则表达式具体步骤:1.鼠标停靠在你的项目解决方案附近如图所示:原创 2015-11-13 22:55:06 · 34587 阅读 · 0 评论 -
OpenGL天空贴图以及反射纹理映射即镜面反射
编程中一个好的天空贴图会给玩家带来舒适的感觉,还有那对周围物体的反射光映射到球、等物体上或许是一个特别愉悦的事件,然而这在opengl里实现又不太难,请看下面的代码:#include #include #define GLUT_DISABLE_ATEXIT_HACK#include #include #include // 摄像机参数static float cameraTh原创 2015-10-31 21:15:14 · 4645 阅读 · 1 评论 -
逆矩阵在3D游戏向量中的重要作用
逆矩阵在3D游戏向量中的重要作用逆矩阵在几何上非常有用,因为他使得我们可以计算变换的“反向”或相反变换功能,,,能撤销原变换的变换。所以,如果向量v用矩阵M来进行变换,接着用M的逆矩阵进行变换,将会哦得到原来的向量,这很容易证明:原创 2015-11-01 21:55:55 · 1642 阅读 · 0 评论 -
程序员应该思索的那些事
程序员每天该做的事 1、总结自己一天任务的完成情况 最好的方式是写工作日志,把自己今天完成了什么事情,遇见了什么问题都记录下来,日后翻看好处多多 2、考虑自己明天应该做的主要工作 把明天要做的事情列出来,并按照优先级排列,第二天应该把自己效率最高的时间分配给最重要的工作 3、考虑自己一天工作中失误的地方,并想出避免下一次再犯的方法 出错不要紧,最重要的是不要重复犯相同翻译 2018-02-03 00:35:40 · 487 阅读 · 1 评论