计算机图形学算法
文章平均质量分 75
若水微韧
专注于3d游戏开发,专注于C++11、STL、win32、mfc、OpenGL编程,开发属于自己3D的游戏
展开
-
qt中的中文路径读取失败解决问题 const char * ->QString
const char *pStr = "QT中文路径的问题";QString fileName = QString::fromLocal8Bit(pStr);原创 2018-05-04 10:19:55 · 1226 阅读 · 0 评论 -
ue4 中KismetProceduralMeshLibrary SliceProceduralMesh的原理
代码:void UKismetProceduralMeshLibrary::SliceProceduralMesh(UProceduralMeshComponent* InProcMesh, FVector PlanePosition, FVector PlaneNormal, bool bCreateOtherHalf, UProceduralMeshComponent*& OutOtherHa翻译 2017-02-16 14:48:22 · 2226 阅读 · 1 评论 -
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 · 2122 阅读 · 1 评论 -
计算机科学专业必读的44册经典著作
中文名称:计算机科学经典著作英文名称:Computer Science版本:简介:1.The Art of Computer Programmin Author: Donald.E.Knuth Book Info: 这部书被誉为20世纪最重要的20部著作之一,与Einstein的"相对论"并列,是计算机科学领域的权威著作.全书共分7卷,目前已经出版了转载 2016-04-04 13:39:50 · 8423 阅读 · 0 评论 -
大学里关于计算机图形学的感悟《自嘲》
临近考试了。有一天,我去图书馆看书,相识了一个学电子专业的同学。刚找到座位坐下便一眼看到一个很“熟悉”的人,这哥们与我真投缘,二话不说便自然而然地结交为挚友。为此,装在彼此心中关于专业中比较闷骚的见解一时间在对话中表现地淋漓尽致。哥们: 你是哪个专业的?我: 计算机的。andyou?哥们: 我是学电子的。计算机专业听起来不错嘛,你是计算机哪个方面的?我: Cod原创 2016-04-03 23:02:35 · 3695 阅读 · 0 评论 -
计算机图形学三角形基元填充算法即三角形光栅化重心双线性插值算法
计算机图形学三角形基元填充算法即三角形光栅化重心双线性插值算法 我们学过数学知识的人,都知道直线的隐函数:f01(x,y)=(y0-y1)*x+(x1-x0)*y+x0*y1-x1*y0这个函数的好处在于计算机计算时无需进行除法操作指令,我们学过汇编指令的都知道计算机在除法指令运行很多个周期才能计算出一个高度精确的结果。所以,在这里巧妙地回避了除法运算。那么,三角形的光删化步骤如下原创 2016-04-03 18:30:22 · 8241 阅读 · 2 评论 -
法线贴图原理
法线贴图的出现,是为了低面数的模型模拟出高面数的模型的" 光照信息 ".光照信息最重要的当然是光入射方向与入射点的法线夹角.法线贴图本质上就是记录了这个夹角的相关信息.光照的计算与某个面上的法线方向息息相关.我们知道计算机里的模型,是通过多个多边形面组合来近似模拟一个物体的.它不是圆滑的.面数越多,则越接近真实物体.光照到某个面当中的一点时,法线是通过这个面的几个顶点通过插值得到的原创 2016-04-03 18:12:39 · 2971 阅读 · 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 · 5204 阅读 · 0 评论 -
逆矩阵在3D游戏向量中的重要作用
逆矩阵在3D游戏向量中的重要作用逆矩阵在几何上非常有用,因为他使得我们可以计算变换的“反向”或相反变换功能,,,能撤销原变换的变换。所以,如果向量v用矩阵M来进行变换,接着用M的逆矩阵进行变换,将会哦得到原来的向量,这很容易证明:原创 2015-11-01 21:55:55 · 1715 阅读 · 0 评论 -
计算机图形学之光线跟踪算法的研究与实现2017年我的优秀毕业论文
计算机图形学之光线跟踪算法的研究与实现2017年我的优秀毕业论文版权所有使用者请联系我 刘创 QQ:903188593诚信声明 本人郑重声明:本设计及其研究工作是本人在指导教师的指导下独立完成的,在完成设计时所利用的一切资料均已在参考文献中列出。 本人签名: 年 月 日原创 2017-06-22 11:12:26 · 3251 阅读 · 0 评论 -
计算机图形学之光线跟踪算法的研究与实现2017年我的优秀毕业论文
计算机图形学之光线跟踪算法的研究与实现2017年我的优秀毕业论文版权所有使用者请联系我 刘创QQ:9031885932.2.2 Phong光照模型事实上对于漫反射的物体表面,使用Lambert就足够,但是实际生活中并不存在这种理想的漫反射材质。Phong光照模型是现代真实图形学中提出的第一个有影响的光照明模型,不过该模型只考虑到了物体对直接光照的反射作用。此外,原创 2017-06-22 11:20:04 · 4605 阅读 · 0 评论 -
程序员应该思索的那些事
程序员每天该做的事 1、总结自己一天任务的完成情况 最好的方式是写工作日志,把自己今天完成了什么事情,遇见了什么问题都记录下来,日后翻看好处多多 2、考虑自己明天应该做的主要工作 把明天要做的事情列出来,并按照优先级排列,第二天应该把自己效率最高的时间分配给最重要的工作 3、考虑自己一天工作中失误的地方,并想出避免下一次再犯的方法 出错不要紧,最重要的是不要重复犯相同翻译 2018-02-03 00:35:40 · 527 阅读 · 1 评论 -
德罗内三角形剖分生成以及opengl显示
Delaunay 三角网的优点是结构良好, 数据结构简单, 数据冗余度小, 存储效率高, 与不规则的地面特征和谐一致,可以表示线性特征和迭加任意形状的区域边界, 易于更新,可适应各种分布密度的数据等; 它的局限性是, 算法实现比较复杂和困难, 但现在已经有了较多成熟的实现算法。 Delaunay 三角网是Voronoi图的伴生图形, 它们两个是被普遍接受和采用的分析研究区域离散数据的有力工具。它是原创 2017-12-06 22:13:25 · 1294 阅读 · 0 评论 -
计算机图形学之光线跟踪算法的研究与实现2017年我的优秀毕业论文
计算机图形学之光线跟踪算法的研究与实现2017年我的优秀毕业论文版权所有使用者请联系我 刘创QQ:9031885939 三角形网格数据构造实现在现实世界中的大多数模型,都是由很多共享顶点的三角形所构成,正如我们前节所讲到的三角形光栅化,足以看出三角形是多么重要的模型数据。事实上,对于现代工业上经常使用到的模型如obj、off、stl、ply等文件,大部分原创 2017-06-22 11:39:11 · 730 阅读 · 0 评论 -
计算机图形学之光线跟踪算法的研究与实现2017年我的优秀毕业论文
计算机图形学之光线跟踪算法的研究与实现2017年我的优秀毕业论文版权所有使用者请联系我 刘创QQ:9031885938 纹理在三角形光栅化时,也有纹理[11]的线性插值[12]。为模型添加纹理效果,会极大提高模型的真实性。8.1 BMP纹理资源简介“BMP图片,是位图Bitmap的简称,它是Windows下,任何格式的图片文件(包括视频播放)都要原创 2017-06-22 11:36:31 · 814 阅读 · 0 评论 -
计算机图形学之光线跟踪算法的研究与实现2017年我的优秀毕业论文
计算机图形学之光线跟踪算法的研究与实现2017年我的优秀毕业论文版权所有使用者请联系我 刘创QQ:9031885937 三角形光栅化原理解析谈到三角形的光栅化原理,不得不说三角形的重心填充算法,实际上在射线与三角形求交的那部分也讲解到了三角形重心知识。在这里将详细讲解在计算机图形学中是如何光栅化三角形的。对于场景中的模型网格,我们可以将它们统一归为以原创 2017-06-22 11:31:06 · 908 阅读 · 0 评论 -
OpenGL天空贴图以及反射纹理映射即镜面反射
编程中一个好的天空贴图会给玩家带来舒适的感觉,还有那对周围物体的反射光映射到球、等物体上或许是一个特别愉悦的事件,然而这在opengl里实现又不太难,请看下面的代码:#include #include #define GLUT_DISABLE_ATEXIT_HACK#include #include #include // 摄像机参数static float cameraTh原创 2015-10-31 21:15:14 · 4752 阅读 · 1 评论 -
在VS2013 MFC下的光照球算法实验
计算机工程系实 验 报 告 课程名称计算机图形学班级1320541实验日期2015年6月11日星期四姓 名刘学号37实验成绩 实验名称原创 2015-10-15 19:38:32 · 1912 阅读 · 0 评论 -
vs2010 vs2013等vs中如何统计整个项目的代码行数
vs2010 vs2013等vs中如何统计整个项目的代码行数在一个大工程中有很多的源文件和头文件,我如何快速统计总行数?------解决方案--------------------b*[^:b#/]+.*$^b*[^:b#/]+.*$ctrl + shift + F 查找选项选 正则表达式具体步骤:1.鼠标停靠在你的项目解决方案附近如图所示:原创 2015-11-13 22:55:06 · 34685 阅读 · 0 评论 -
3D+OpenGL里的光照平面镜面反射以及漫游移动物体位置等的具体实现
3D+OpenGL里的光照平面镜面反射以及漫游移动物体位置等的具体实现在实现过程中涉及到1.opengl里的蒙版缓冲等相关知识2.观察坐标系的转换摄像漫游等3.此外图中的mirror图片为导入的mirror.jpg文件4.在纹理贴图中unsigned int ATLLoadTexture(const char* fileName)函数实现了jpg/bmp等图片的加载//加载jp原创 2015-10-20 17:37:40 · 1719 阅读 · 0 评论 -
3D三维向量的单位化、正规化、标准化推导及代码实现
3D三维向量的单位化、正规化、标准化推导及代码实现可以用来法向量等向量的单位化原创 2015-10-20 10:57:46 · 3605 阅读 · 0 评论 -
3D光照阴影 平面阴影矩阵推导及代码实现
3D光照阴影 平面阴影矩阵推导及代码实现参考有关知识于是辛苦几个小时,推导出光照 平面阴影转换矩阵见图片 平面阴影矩阵推导第一页: 平面阴影矩阵推导第二页 平面阴影矩阵 具体代码实现 第三页:到这里光照阴影的平面矩阵推导结束还有伪代码(参考红宝书)原创 2015-10-19 21:57:59 · 2743 阅读 · 4 评论 -
MFC的API函数大全
目录API函数大全...11.API之网络函数...12. API之消息函数...13. API之文件处理函数...24. API之打印函数...55. API之文本和字体函数...76. API之菜单函数...87. API之位图、图标和光栅运算函数...98. API之绘图函数...119. API之设备场景函数...原创 2015-10-21 09:46:11 · 5529 阅读 · 0 评论 -
向量的叉乘即3D中任意两个三维向量的叉乘(向量积)推导及代码实现
向量的叉乘即3D中任意两个三维向量的叉乘(向量积)推导及代码实现原创 2015-10-20 10:52:24 · 4933 阅读 · 0 评论 -
给定三维空间里的任意三个点来确定一个平面方程Ax+By+Cz+D=0的求解过程及伪代码的实现
给定三维空间里的任意三个点来确定一个平面方程Ax+By+Cz+D=0的求解过程及伪代码的实现其思想就是1.先求解该平面的法向量n2.由点法式将其中的任意一点代入公式即可以求得平面方程Ax+By+Cz+D=0的系数ABCD3.伪代码实现如我的图片推导过程原创 2015-10-17 23:15:38 · 14784 阅读 · 0 评论 -
_CRT_SECURE_NO_WARNINGS VS2013安全编译问题解决
相信使用vs2013等编译器涉及到文件的打开等安全性问题时,都会出现这个这问题吧,,,错误 1 error C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS.原创 2015-10-17 23:24:33 · 1898 阅读 · 0 评论 -
OpenGL光照阴影算法的实现
阴影阴影影(又称影子、背影),光线被不透明物体阻档而产生的黑暗范围,与光源的方向相反。影的横切面是二维轮廓、阻档光线物体的倒转投影。影的大小、形状随光线的入射角而改变。(维基百科)在场景中添加阴影可以使得场景更加逼真。下面两幅图是有无阴影效果的对比:如何制造阴影?简单地做法,我们可以通过把源物体压平在物体表面所处的平面上,来制造阴影效果。然后被压平的物体用黑转载 2015-10-16 21:56:16 · 4820 阅读 · 0 评论 -
数量积 向量的点积 即3D中任意两个三维向量的点积(数量积)推导及代码实现
向量的点积即3D中任意两个三维向量的点积(数量积)推导及代码实现可以用来判断聚光灯的亮度原创 2015-10-20 10:55:37 · 3241 阅读 · 0 评论 -
OpenGL模型视图变换、投影变换、视口变换总结
产生目标场景的过程类似于用照相机进行拍照:(1)把照相机固定在三角架上,并让他对准场景 从不同位置观察场景(视图变换)(2)对场景进行安排,使各个物体在照片中的位置是我们所希望的 移动,旋转或者放大缩小场景中的物体(模型变换)(3)选择照相机镜头,并调整放大倍数(调焦) 显示物体时,可以选择物体是如何投影到屏幕上(投影变换)(4)原创 2015-11-06 16:27:34 · 2018 阅读 · 0 评论 -
视图模型转换矩阵的推导也是关于gluLookAt函数即视图转换矩阵的推导及代码实现
关于gluLookAt函数即视图转换矩阵的推导及代码实现视图模型转换矩阵的推导也是关于gluLookAt函数即视图转换矩阵的推导及代码实现 gluLookAt函数提供给用户完成模式变换(model-view transformation)中,在将模型坐标系转换都世界坐标系后,进行世界坐标系到照相机坐标系的转换。实际上,照相机的定位也是在世界坐标系下定义的,这里的转换,可以理解为:原创 2015-11-06 23:45:43 · 4816 阅读 · 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 · 5174 阅读 · 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 · 3906 阅读 · 0 评论 -
错误 1 error LNK2019: 无法解析的外部符号 __imp____glutInitWithExit@12,该符号在函数 _glutInit_ATEXIT_HACK@8 中被引用
解决方案:在主cpp文件里加上宏定义:#define GLUT_DISABLE_ATEXIT_HACK且位于#include 之前成功解决此问题原创 2015-10-26 17:13:41 · 1125 阅读 · 0 评论 -
三维图形绕任意轴旋转矩阵求解步骤
在3D游戏中操作矩阵最为常见,其中最重要的莫过于平移旋转矩阵,在这里总结了一下三维矩阵绕任意轴的矩阵步骤。此外,由于单个绕x、y、z轴旋转,在这里就不罗列了步骤如这张图显示:原创 2015-10-25 17:03:06 · 7532 阅读 · 0 评论 -
3DGAMES中WIN32+OpenGL游戏中实现光照阴影算法主要代码实现
在3D游戏中实现光照阴影算法,其实主要问题就是推导出平面阴影矩阵,参考到我的前几章写的博客就是关于平面矩阵的推导与演算,光照阴影平面矩阵http://blog.csdn.net/liuchuang_mfc/article/details/49255731在这里实现就不是太难了,此外此次环境是WIN32下配置上OpenGL实现光照,再用平面阴影矩阵去计算物体在光照下的阴影,实现了最终结果。有原创 2015-10-23 20:02:08 · 1656 阅读 · 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 · 1263 阅读 · 0 评论 -
光照阴影镜面反射综合算法
#pragma once#include #include "math_3d.h"#define GLUT_DISABLE_ATEXIT_HACK#include /*GL_BGR*/#include #include // 全局变量光照参数float ambientLight[] = { 0.3f, 0.3f, 0.3f, 1.0f };/*环境光参数*/float d原创 2015-10-21 18:30:36 · 1895 阅读 · 0 评论 -
OpenGL多视口变换函数:glViewport使用
OpenGL多视口变换函数:glViewport使用glViewport是OpenGL中的一个函数。计算机图形学中,在屏幕上打开窗口的任务是由窗口系统,而不是OpenGL负责的1.功能glViewport在默认情况下,视口被设置为占据打开窗口的整个像素矩形,如图1,窗口大小和设置视口大小相同,所以为了选择一个更小的绘图区域,就可以用glViewport函数来实现这一变换,在原创 2015-11-07 13:49:16 · 7508 阅读 · 0 评论 -
Win32+OpenGL计算机图形学光照阴影算法 可控制光源、光照物等位置的移动以及漫游等
参考opengl的第四版的阴影算法,通过好长时间的修改与研究,终于明白了opengl 的坐标系,以及矩阵的操作。接下来就来显示下计算机图形学里的光照阴影的算法,采用再次以黑色渲染物体本身进而投影在所要求的平面上,达到一般所要求的阴影效果#pragma once#include #include "math3d.h"#define GLUT_DISABLE_ATEXIT_HACK原创 2015-10-17 18:21:01 · 2453 阅读 · 1 评论