给我一个画点函数,我能创造整个世界
2011-04-03 13:38
471 查看
解释一下。。
为了巩固3D知识,就萌发了一个想法。用软件模拟整个3D流水线。。基本上每看完《图形学》的一章,就会模拟一个算法,然后应用到引擎里面。
经过无数个日日夜夜,终于调试到比较满意的效果。
当然还需要完善,扫描线算法的边线处理的不好,纹理映射算法还没写。。
这是添加了高反光材质的球
CS的模型
其中模型文件采用MilkShape3D导出的ASCII文件。方便手动修改。
流水线实现的比较简单:
1.从文件中读取顶点,法向量,材质信息
2.用法向量剔除背面,把剔除后的三角形加入渲染列表中
3.处理渲染列表中的三角形,先计算顶点的光照,然后执行坐标转换,物体空间坐标系->世界坐标系->观察坐标系->投影坐标系,
4.Gouraud 填充算法填充三角形
为了巩固3D知识,就萌发了一个想法。用软件模拟整个3D流水线。。基本上每看完《图形学》的一章,就会模拟一个算法,然后应用到引擎里面。
经过无数个日日夜夜,终于调试到比较满意的效果。
当然还需要完善,扫描线算法的边线处理的不好,纹理映射算法还没写。。
这是添加了高反光材质的球
CS的模型
其中模型文件采用MilkShape3D导出的ASCII文件。方便手动修改。
流水线实现的比较简单:
1.从文件中读取顶点,法向量,材质信息
2.用法向量剔除背面,把剔除后的三角形加入渲染列表中
3.处理渲染列表中的三角形,先计算顶点的光照,然后执行坐标转换,物体空间坐标系->世界坐标系->观察坐标系->投影坐标系,
4.Gouraud 填充算法填充三角形
相关文章推荐
- 给我一个画点函数,我能描绘出整个世界
- 写一个函数排序整个字符串数组
- 创建一个字符串数组,总共5个元素,每个元素最多保存30个字符,写一个函数排序整个数组。
- Irrlicht例程04:创造一个有声世界(上)
- 程序员面试金典——解题总结: 9.17中等难题 17.6给定一个整数数组,编写一个函数,找出索引m和n,只要将m和n之间的元素排好序,整个数组就是有序的。注意:n - m越小越好,也就是说,找出
- 一个实现让整个网页变灰的javascript 函数
- 一个键盘、一根网线就能让之改变整个网络世界
- python的一个函数里面有while,在while里面执行了return,是跳出整个循环,还是跳出整个函数
- 创建一个字符串数组,总共5个元素,每个元素最多保存30个字符,写一个函数排序整个数组。
- 一个基于xml的超级orm框架-世界是由懒人创造的。
- 微软儿童编程技术,kodu(酷豆)为儿童创造一个游戏世界
- 我们创造世界的过程也是一个我们如何思考的过程,要想改变世界,必须先改变我们的思想
- MVC5用AJAX实现一个下拉列表的值改变,另一个下拉列表的值跟着变(在不更新整个页面的前提下,且调用后台函数)
- 请实现一个函数用来匹配包括'.'和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字
- Irrlicht例程05:创造一个有声世界(下)
- 将整个结构体作为一个参数传递给函数
- wpf 透明效果 需要DwmApi.dll文件,然后定义一个函数去画Aero区域,从而实现整个窗口的Aero化。
- 有一个整数数组,请编写一个函数,找出索引m和n,只要将m和n之间的元素排好序,整个数组就是有序的。注意:n-m应该越小越好,也就是说,找出符合条件的最短序列。 给定一个int数组A和数组的大小n,请
- 一个坚定地向目标迈进的人,整个世界都会为他让路.
- 面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了;面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为(转)