快速导航:   教程资源  | 经典范例  | 友情链接  | 联系我们  | 官方微博
登陆 | 注册

 flash 3d 研究所
flash3d 研究所 pv3d 教程 研究所小贴士: Flash3D研究所有群了~总部群号:57812159 ; Simon分部群号:59264372










最近更新:
● ScottJep阁下在讨论区里 发表新主题“Prix Kamagra Gold 10...”(12:56:04)
● ScottJep阁下在讨论区里 发表新主题“En France Kamagra Je...”(12:32:40)
● ScottJep阁下在讨论区里 发表新主题“Prix Priligy 90 — P...”(12:08:25)
浏览主题:《三维图形成象的基本原理》

《三维图形成象的基本原理》
DDM君 (2012-03-16 05:50:43)

DDM君 , Flab3D.com (允许转载,转载请注明)


一个三维模型/场景要成像和运动在屏幕上,至少需要下面的要素。数学苦手或者完全没接触过的朋友不用怕,了解一下先,具体的计算法我们会在以后的教程中一一说明。

模型和贴图:
三个点连接成一个三角形,很多三角形组成一个模型。
贴图就是模型的每个点(x,y,z)对应的一个平面的(u,v),u,v也就是平面位图的x,y,只不过点用了x,y了,怕重复而已。
Flash3d里面的贴图就是根据每个三角形的不同斜度,和每个点对应的UV计算出beginBitmapFill的第二个矩阵参数(matrix)来用位图填充三角形。


运动:
对于初接触图形数学的朋友,下面的道理(二维,三维图形都是这样的道理,只不过三维多一个Z轴)一定会让你吃一惊。
所有我们以为在动的点/模型其实都没有动(相对坐标系),运动的只是坐标系而已。移动,旋转,放大,透视全是同一个原理,不过是在移动,旋转,放大,透视这些点/模型所在的坐标系而已。
所谓摄像机的各种运动根本就是浮云。摄像机绕Y顺时针拍摄,只不过是模型的坐标系在绕Y逆时针转而已。

所有点的任何变动都是一个点(x,y,z)乘以一个矩阵得到的。就这么简单。
千万不要听到这个就吓跑了,我们不需要去仔细研究什么是矩阵,我们只要知道怎么用就行了。而且也根本不需要我们自己去计算,数学算法类flash3d的引擎都是写好了的。
一个东西要动,不管是二维还是三维,就必须得要它的每个点都乘以某个矩阵,这是逃不掉的。



‘投射’在屏幕上
虽说是‘三维’,但实际上我们还是从二维平面的屏幕上观看的。所以我们必须要把三维的点(x,y,z),变成只有(x,y)的点显示在平面的电脑屏幕上。形象一点可以说三维点的显示就是这个点‘投影’在平面的画布上。
有些朋友会说,我直接把x,y,z的z值去掉不就行了。是的,直接去掉我们就能得到一个(x,y)的点,但是这样投影下来图形没有近大远小的变化,看起来稍稍有点奇怪。
于是我们就有了‘透视投影’,算法是用x,y除以某个和Z有关的值w来得到一个近大远小的透视后的(x,y),这才是我们平常看到最正常近大远小的三维图像。


图形学的原理是读懂flash3d各种引擎核心内容的基础的基础,只有了解这样的知识后,读引擎源代码才有意义,以后才能慢慢加入写引擎代码的行列,否则只会迷失在代码的海洋中(有时会吐=A=)。 让我们一起迈出这第一步吧,加油!


有任何不清楚的地方,欢迎到讨论区发言。(无需注册)



DDM君/Furry
Flab3D.com







flash 3d 研究所
(2008-11-24 17:14:52)
写的非常好!
期待新的文章.



flash 3d 研究所
(2008-11-25 17:10:33)
感谢still君的支持 有空常来晃晃~多多交流


flash 3d 研究所
(2008-11-25 19:14:38)
写的非常好!


flash 3d 研究所
(2008-11-30 00:01:45)
一个东西要动,不管是二维还是三维,就必须得要它的每个点都乘以某个矩阵,这是逃不掉的

这句话说的欠妥,其实是物体坐标系的原点乘以一个矩阵,剩下点不用乘。


flash 3d 研究所
(2008-12-03 13:26:59)
每个点都需要乘 三维成像没有所谓‘原点’ 每个三维顶点都必须乘


flash 3d 研究所
(2008-12-04 14:22:44)
很好的网站,正在学习中,长期关注贵网站!


flash 3d 研究所
(2008-12-09 15:26:09)
非常好的一个网站


flash 3d 研究所
(2008-12-10 10:26:40)
欢迎光临


flash 3d 研究所
(2009-01-06 21:49:11)
顶了,学习 中呵


flash 3d 研究所
(2009-03-13 20:36:25)
一直在关注你的网站,非常感谢你的贡献。


flash 3d 研究所
(2009-03-20 11:52:57)
太棒了,谢谢站长对三维初学者的贡献


flash 3d 研究所
(2009-04-24 22:22:55)
站长 ,编辑 ,大家 加油.


flash 3d 研究所
(2009-05-27 14:37:15)



flash 3d 研究所
(2009-06-16 19:13:14)
我图形学和数学知识还是比较扎实的,但是数学没学过矩阵。但是很清楚从3d到2d坐标换算不需要用矩阵。不过看到很多计算机图形学的书里,渲染的算法里,在光粒子的一些参数上,矩阵好象应用得很广。深入研究的话,矩阵应该是个前提


flash 3d 研究所
(2009-10-09 12:13:25)
很好的网站,很强的作者。支持


flash 3d 研究所
(2009-12-28 17:36:27)
建议大家应该先去买本儿素描基础的书看看,上面大多都会讲透视的原理和通过物体明暗关系来表现三维的物体。所以说,计算机图形学是一门综合的学科,不要以为素描那东西只是美工该看的,程序员也是需要了解的。


flash 3d 研究所
(2010-09-09 17:58:18)
这是高等数学里的向量平面


flash 3d 研究所
(2011-08-02 18:03:57)
非常好的资料,我顶


评论人:
邮   箱: (填入邮箱,博客地址均可)

内   容: (广告和垃圾内容可能会被删除,望理解)
链接地址

验证码:(为防止机器人骚扰,请麻烦输入验证码^_^)
  

(目前需登陆方可发表)


不想添加了