五千年(敝帚自珍)

主题:版内有对计算机图形学(openGL)比较了解的高手吗? -- 博客南

共:💬26 🌺18
全看分页树展 · 主题 跟帖
家园 老叫花不才,14年前曾经底层实现过光线跟踪

这里胡扯几句,说错了莫怪。所有这些,都是假定光线跟踪的前提,未必是OpenGL里面实际的实现,但是应该差不多。

顶点坐标到光栅化,这个是有一个视觉模型在里面的。就是假定屏幕是一个光栅,从眼睛(点)出发,视线逆光线而行,经过每个像素,接触到场景中的物体,在接触点视线获取颜色和亮度。注意从光栅(二维)到场景(三维)的转化,就是这里发生的。

对于场景中的一个点来说,这个点对于视线(逆光线)有颜色和亮度的贡献,这个颜色取决于该点的颜色,而该点的颜色,或者是定义的简单颜色,或者是纹理文件映射到这个点的颜色。当时做的是透明物体,也就是说,该点的颜色和亮度,是视线在该点,经过反射和折射以后,积累的颜色。通俗的说:场景中有一杯绿色的酒,透过酒看到墙上周慧敏的图片,那么就是看到一个绿色的周姐姐。在某些地方,因为场景中灯光的照射,只能看到一个亮点,没有颜色。

顶点的法向量,我们当时的用处是用来生产贝塞尔曲面,也就是说,一个曲面由多个顶点定义,但是这个曲面并非多个小平面构成,而是由算法生成的曲面。其实如果是多个小平面的话,每个顶点都同时属于几个小平面,光照的反射折射要用接触点的法向量来决定,而非顶点的法向量。无论曲面还是小平面集合,都应该是以接触点的法向量来决定反射和折射。

纹理映射和屏幕分辨率的确是个好玩的事情,其实任何两个网格叠加,结果都是很好玩的。搜索一下Moire-fringe,莫尔条纹。

另外,多谢河里各位的投票,老叫花现在已经认证了。

全看分页树展 · 主题 跟帖


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河