OpenGL
文章平均质量分 87
wk_119
欢迎大家交流
展开
-
[图形学]拉普拉斯网格变形(Laplace Deformation)原理及复现
本文原理参考论文: Laplacian Mesh Processing本文复现参考:Mesh模型的Laplace Deformation(网格形变 - 拉普拉斯形变) - C++代码实现文章目录拉普拉斯网格变形原理拉普拉斯坐标拉普拉斯矩阵原理分析添加锚点求解形变后的坐标拉普拉斯网格变形是一个相当经典的工作,本工作复现了一下基础的部分,这里记录下原理部分和结果。复现结果演示如下:拉普...原创 2019-12-05 18:19:10 · 10593 阅读 · 9 评论 -
[软件] PointPicker 选取模型上的点并保存
最近想拾取一个模型上的点的坐标并保存下来,正好实现一下简单的点云拾取操作。原创 2019-11-26 21:29:14 · 981 阅读 · 3 评论 -
【OpenGL】阴影映射实现实时阴影
完整代码已上传:https://github.com/kaiwu119/BallFreeFallAnimation阴影是光线被物体遮挡而产生的,当光线照射不到物体表面时,这个物体就处于阴影中了, 阴影的存在可以让场景更加真实,而且更容易分辨出物体的相对位置。现在有很多阴影的实现方法,但是都不是那么容易实现的,而阴影映射是比较容易实现的,这次主要介绍阴影映射实现实时阴影,下面先看效果图:...原创 2019-03-08 15:38:25 · 5788 阅读 · 0 评论 -
【图形学】基于点云生成树木模型
很久之前就想尝试有关于点云方面的知识,但是一直耽搁到现在,一方面感觉很难不知道如何下手。最近看了师兄发来的论文后,我发现基于点云生成树木模型也并没有想象中那么难。参考论文:Knowledge and Heuristic Based Modeling of Laser-Scanned Trees.Hui Xu,Nathan Gossett,Baoquan Chen.参考博客:https:...原创 2019-03-03 20:50:00 · 10562 阅读 · 35 评论 -
[图形学]仿制Minecraft游戏(柏林噪声生成地形)
最近在整理之前做过的东西,之前的制作了一个简易版的《Minecraft》的游戏,当时是看一个学长的博客,感觉很有趣。那时第一次了解到柏林噪声(Perlin Noise),下面介绍一下我对这个游戏的总结。 先附上我的游戏截图:1. 地形的生成采用的柏林噪声生成地形,关于柏林噪声的相关概念下面的博客已经说得很清楚了 [数学]柏林噪声 :http://www.cnblogs...原创 2018-05-31 20:27:14 · 7362 阅读 · 5 评论 -
[图形学]基于平面方程的阴影计算
一个三维物体绘制出来之后,打上光照就很具有真实感了,但是如果一个物体没有影子,那么是一个很可怕的事情。那么我们如何把一个物体的影子加上呢,本文会介绍一种方法,可以让三维物体的影子投影到指定的平面上。如何绘制下面的花瓶可以参考我的另一个文章:opengl绘制花瓶程序演示链接:https://download.csdn.net/download/qq_31804159/10383046实现结果...原创 2018-04-29 17:35:19 · 2120 阅读 · 0 评论 -
[OpenGL]多视角漫游
我们绘制完一个模型之后,尴尬的是每次运行只能看到模型的一面,这样显然是极为不方便的,那我们如何能够像游戏中那样对一个模型进行多视角观察呢。现在我给大家描述一下原理:想象一下,如果我们把我们的眼睛放在一个球面上,把物体放在球心上,那么我们无论把我们的眼睛放在球面的哪个位置我们都是可以观察到模型的,而且根据位置的不同我们观察到模型也不同。下面具体说明实现方法: 1.构建一个球面 ...原创 2018-04-28 21:53:48 · 1096 阅读 · 0 评论 -
几何着色器(三)爆破和腐蚀效果
几何着色器的功能是很强大的,我们可以借用几何着色器的丢弃图元的特性实现腐蚀效果。我们也可以通过改变图元从而实现物体的爆破效果。因为几何着色器是GPU跑的,所以很大的提升了运行效率,从而实现实时的动画效果也是毫不费力的,下面的例子是采用了150万个点渲染的一个地形;先看效果图(动态图可能有些卡):腐蚀效果:爆破效果: 如果你之前已经看过我写的实现表面法线...原创 2018-05-19 15:06:18 · 1396 阅读 · 0 评论 -
几何着色器(二) 表面法线可视化
从之前的介绍,我们已经了解了几何着色器的基本知识,现在介绍一下如何用几何着色器实现表面法线的可视化如果是第一次了解几何着色器,可以先了解基本知识:几何着色器(一)效果图:首先我们先了解一下绘制流程: 1.激活顶点着色器和片元着色器 2.正常绘制模型 3.激活顶点、几何、片元着色器 4.绘制法线 也就是说我们要绘制两次 着...原创 2018-05-19 11:30:46 · 1875 阅读 · 0 评论 -
几何着色器(一) 基本概念
最近想做一些渲染的东西,接触到了几何着色器,发现了几何着色器的强大之处,几何着色器位于顶点和片元着色器之间,几何着色器能够产生0个以上的基础图元,它能起到一定的裁剪作用、同时也能产生比顶点着色器输入更多的基础图元。它可以做的事情非常的酷炫,例如:表面法线的可视化和实现三维物体的爆炸效果。 基本知识: 输入可以有如下:points:绘制GL_POINTS图元时。 lines...原创 2018-05-18 18:19:37 · 7913 阅读 · 0 评论 -
opengl绘制花瓶
本文阐述一种简单的绘制3D花瓶的方法,对于刚接触图形学的小伙伴而言是一个很好的练习题目。先附上我的结果: 下面阐述原理及我的实现:1.定义一个正弦函数f(y)f(y) = r*sin(y)+Rr和R用于控制花瓶半径2.让这个函数绕着y轴旋转,则我们可以得到一个曲面函数:x^2+z^2 = (r*sin(y)+R...原创 2018-04-25 20:19:00 · 7162 阅读 · 0 评论 -
[图形学] 模拟小球自由落体
完整代码链接:https://github.com/kaiwu119/BallFreeFallAnimation计算机动画经常用于描述一些自然界的物理运动, 本文介绍如何实现动态过程的模拟。演示程序:https://download.csdn.net/download/qq_31804159/10390092效果如下图:对于一个自由落体,大家都清楚计算公式,这里不再叙述。我们...原创 2018-05-03 17:26:47 · 3393 阅读 · 3 评论 -
[Qt]qt+opengl程序创建
在Qt中使用opengl在我看来比起使用glut库更为简单,因为不需要添加额外的其他文件。 本文主要介绍如何在Qt中使用opengl,具体步骤如下:1.创建一个工程项目选择基类为QWidget,完成建立工程2.更改.pro文件,添加语句 QT += opengl 3.在.h文件中添加几个主要的头文件#include <GL/gl.h>#...原创 2018-04-25 17:59:25 · 1312 阅读 · 0 评论 -
[OpenGL]绘制透明物体
本文主要介绍如何在opengl绘制一个透明物体,实现混合效果效果图如下: 可以看出这个龙是处于一个透明的包围盒中的。下面我介绍实现方法:1.打开opengl的混合功能glEnable(GL_BLEND);2.设置混合函数 glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);3.设置深度深度缓冲区为只读 ...原创 2018-05-03 14:58:04 · 5966 阅读 · 1 评论 -
[GLSL]渲染大规模地形(多纹理)
演示程序已上传:https://download.csdn.net/download/qq_31804159/10383143从学习图形学开始,就想做一个关于地形方面的东西(因为看起来比较酷emmm),有一次机会了解到了基于高度图渲染地形。这是一个比较简单的方法,对新手而言比较友好的。其实这个是我好早之前做的一个东西了,但是算是真正进入图形学的一个标志吧,以后我会陆续的把我做的一些有意思的东...原创 2018-04-25 13:10:02 · 4811 阅读 · 2 评论 -
[GLSL]法线贴图(Normal mapping)原理及实现
前一段时间了解到一个技术叫法线贴图,感觉这是一个很有意思的东西,所以我尝试去实现了一下,虽然网上有很多资料了,但在这里还是记录一下我的实现过程。演示程序已上传:https://download.csdn.net/download/qq_31804159/10372916 感兴趣的同学可以下载玩一下首先附上我的实现结果: 左上为原图,左下为得到的法线图,中右图是法线贴图效果。...原创 2018-05-01 17:40:11 · 7960 阅读 · 3 评论 -
[OpenGL]导入obj文件
通常来说我们构建一个模型是比较复杂的工作,那么我们还有什么途径获得模型呢。其中一种方法就是导入obj模型,不要被这个名词给吓到了,其实就是把一个制作好的模型保存到一个文件中,我们称为obj文件。先上图片:下面说明如何读取单个obj文件: 我们先了解一下obj文件里都是表示什么v 表示点的坐标值vt表示纹理贴图坐标值vn表示点的法线f 表示的是面,本例中针对的...原创 2018-04-26 23:17:33 · 5938 阅读 · 5 评论