![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
图形学
文章平均质量分 71
ichild1964
这个作者很懒,什么都没留下…
展开
-
depth bias的妙用:线框&描线
Wireframe without Z-FightingSometimes, for debugging purposes, or maybe for some effects, we would like to render a model, together with the wireframe on top of it.A simple way to to this is转载 2013-02-28 07:56:25 · 320 阅读 · 0 评论 -
OpenGL/glsl实现bumpmaping的各种细节
大势所趋,开始向OpenGL搬家。发现OpenGL和Direct3D相比各种残疾啊,连个计算矩阵的包都要自己实现,更别提dds和skin animation什么的了。竟然Tangent和binormal都不自带,哦滴神!不过也因此终于搞明白tangent space是怎么来的了。 Tangent和binormal的计算可以参照这篇文章,摘要如下。后来发现之间做的shader各种不对,如何算正确原创 2013-05-04 21:35:51 · 694 阅读 · 0 评论 -
深度测试与alpha混合
Comment:做粒子系统的时候发现,如果用alpha blend的话,先渲染的在前面的物体会挡住后面的物体产生一个图片的黑边,最常被提到的做法是按离摄像机从远到近的顺序把物体sort一遍,然后按从远到近的顺序渲染。但是超级不喜欢sort这种nlogn的算法,而且还要加重cpu的负担,在加上要转换到视口才能sort,不用写就觉得会很ugly。找了下是否有其它办法取代,查到了下面的方法。其实很简原创 2013-05-11 19:00:30 · 503 阅读 · 0 评论 -
OpenGL渲染到纹理
OpenGL渲染到纹理有两种方法,第一种是用CopyTexImage2D拷屏,NeHe的教程用的是这种方法;第2种是Frame Buffer Object。两种方法各有千秋,拷屏简单,但是效率低,比如一个粒子系统需要做haze,需要用到render target,那么每个这样的粒子系统都要拷贝屏幕一次,效率就会很差了;当然用hash表存一下也是个不错的选择。FBO和Direct3D的rendert原创 2013-06-21 10:41:20 · 1940 阅读 · 2 评论 -
OpenGL速度优化
用glVectex渲染场景发现速度爆慢,几百个模型帧数掉到惨不忍睹的几个fps,不得已把本来不想碰的Vertex Arrray Object, Vertex Buffer Object和Display List都试了一遍。每次写心得都要把OpenGL诅咒一遍,这次也不例外;Direct3D要做的就是填充数据就可以达到最优的渲染效果,而OpenGL则是默认情况下什么也没开启,连Culling都要自己原创 2013-06-30 11:08:59 · 1300 阅读 · 0 评论 -
sharpgl,Opentk,csgl, Opengl3.0/4.0, glut用哪个好?
发现选择sharpGL是个极其失败的决定,什么都不渲染帧数200-300,渲染几百个模型再来十几个灯帧数竟然跌倒10以下,卡到不行。而用Direct3D就可以流畅的渲染出来;而project都几乎快做完才碰到这样的情况,真是欲哭无泪。决定凑合到底了,不到忍无可忍不换成C+OpenGL了。测了下这几个框架的速度,得出的结论是:不要用C#+OpenGL处理大场景或者计算量很大的物理系统,因为C#下的3原创 2013-08-03 08:42:16 · 2662 阅读 · 1 评论 -
Opengl的gl_NormalMatrix到底为何物?
当用glsl传normal到fragment的时候总要用gl_Normal* gl_NormalMatrix,是为什么呢?做bumpmap的时候,binormal和tangent需不需要也乘以gl_NormalMatrix呢,如果需要把TBN转到世界空间,而不是把灯光转到TBN的话需不需要乘以gl_NormalMatrix或者是需要乘以其它矩阵?有没有想过perspective投影之后模型成什么样原创 2013-08-03 07:02:34 · 2814 阅读 · 1 评论