stage3d编程0 matrix3d工具的编写

摘要: 今天提供一个matrix3d的工具类,在代码里面会详细注明这个工具类的作用以及实现方式(左手坐标系): package { import flash.geom.Matrix3D; import flash.geom.Orientation3D; import flash.geom.Vector3D; public class Matrix3DUtils { // matrix3d的基础数据,临时变量 private static var _raw : Vector. = new Vector.(16, true); // 转弧度 private sta... 阅读全文
posted @ 2013-09-16 20:36 boblchen 阅读(747) 评论(3) 推荐(0)

stage3d编程-基础6 关于uv,采样算法

摘要: 1、纹理坐标 之前谈到,顶点数据组成了三角形,很多个三角形组成了模型。但是这个也只是一个线框图。为了让它看起来跟真实的一样,我们需要一个纹理图,给他贴上去。将它包起来,那么它看起来就跟真实的一样了。但是一张2d的平面图,如何能够贴上去呢。那么这个时候,我们需要一个坐标来解决这个问题了。我们称纹理坐标为uv坐标。u是水平,v是垂直向下,坐标原点是纹理图的左上角(0,0)。但是大家想一下,纹理图可大可小,小到4,8,16,32.大到1024x1024,1024x2048。尺寸完全是乱的,不同的,所以这个时候,我们就不能通过纹理图的尺寸来设置坐标了。但是我们可以使用比率来做。一张图,最大为1,... 阅读全文
posted @ 2013-09-14 13:08 boblchen 阅读(1499) 评论(0) 推荐(0)

stage3d编程-基础5 初窥AGAL

摘要: 周五晚上回家在家改了一晚上的bug.之前改了一下shader的结构,结构悲剧。。。有童鞋在问前一篇里面提到的模型的深度值是怎么计算的。其实呢,这个我没有提,这里面也是很大一个坑。这个深度值是通过projection算出来的。 projection我只是提了一下,然后给了一个实现链接。 这个深度值以后也会用到,比如说阴影啊之类的。 今天补上昨天的,初窥AGAL。之前给了一个demo.里面有两段AGAL。但是这个AGAL是什么呢?AGAL说白了,就是对显卡进行编程的指令。我们在写的时候,大家会看到类似汇编的mov之类的指令。 最终我们写的这些汇编级的代码,被通过adobe提供的agalass... 阅读全文
posted @ 2013-09-14 12:18 boblchen 阅读(698) 评论(0) 推荐(0)

stage3d编程-基础4 关于渲染管线深度测试投影等

摘要: 8点才到家,饿着肚子开始写。昨天给出了一个demo。但是那个demo里面有很多新的东西,今天就简要说明一下,我会在后续把那个demo里面所有出现的名词全部解释一遍。然后开始讲解有关agal等等。 1、后台缓冲区 gpu在绘制模型完之后,会维护一个后台缓冲区(backbuffer)。所有的最终显示出来的颜色会根据一定的规则被放在后台缓冲区里面。当我们调用context3d.present()方法的时候,就是在通知gpu将后台缓冲区的数据显示出来。所有大家只要知道,这个缓冲区里面的数据将是我们最终看到的。在配置后台缓冲区的时候,我们需要指定一个大小,以及抗锯齿等级。抗锯齿越高,精度就越高,... 阅读全文
posted @ 2013-09-12 21:17 boblchen 阅读(891) 评论(0) 推荐(0)

stage3d编程-基础3(网格,法线,面,顶点等)

摘要: 昨天谈到了矩阵的变换, 今天开始谈一下关于顶点,面,法线,网格等基本术语。如果有时间,还会写一个stage3d的demo。 1、顶点 在3d世界里面,基本单位就是三角形,为什么会是三角形?因为三个坐标可以构成一个三角形,而一个三角形则可以表示一个面。一个四边形则是两个三角形组合,再也找不到比三角形更小的几何图形可以用来表示一个面。在想象一下,一个立方体。比如你手边的魔方,盒子等。你可以观察出来,它是由6个四边形组成,也就是由12个三角形组成。 盒子的尖角就是一个顶点。 也就是说,一个多边形两边相交的点就叫做顶点。一般我们也称定义位置的点为顶点。例如你手边的立方体盒子,就是由8个顶点... 阅读全文
posted @ 2013-09-11 20:41 boblchen 阅读(884) 评论(0) 推荐(0)

stage3d编程-基础2(矩阵变换)

摘要: 矩阵变换 当我们在使用stage3d编程时,我们使用4x4矩阵来描述变换操作。实现思路是,3d空间中,无论是坐标还是向量,均使用四个数据存放,也就是1x4矩阵。然后将这个1x4矩阵乘以4x4矩阵得到最终的变换结果。假设一个点,变换后就是新的点;一个向量变换后就是新的向量。(纯属废话) 之所以使用4x4矩阵,是因为这种特定的矩阵可以描述我们所需要的各种变换。可能也许有人为认为3x3矩阵更适合,但是3x3矩阵无法描述很多变换。例如:平移,透视投影。前面提到,无论是坐标还是向量,都采用四个数据存放,但是大家可能会觉得三个变量足以。为何需要第四个。这个在后面就会讲到。对于坐标,我们采用这种形式存放.. 阅读全文
posted @ 2013-09-10 19:55 boblchen 阅读(567) 评论(0) 推荐(0)

stage3d编程-基础0(向量)

摘要: 从今天开始写我对于stage3d编程的一些基础知识。尽量保证更新,不太监。之所以想到写这个,是因为在半年前,本人刚开始学习3d的时候,苦于无详细的资料,无方向,走了很多弯路,现在分享出来,同时也是对关于stage3d编程的总结,因记性差, 所以觉得写下来,以后可以翻翻。 如果是正在学习stage3d的童鞋,可能买了Adobe-Flash-11-Stage3D-Molehill-Game-Programming-Beginners-Guide这本书,当初我也是跟着这本书来学习的,但是里面其实有很多地方并没有讲明白,所以我准备从最基础的开始写。这些基础是3d的基石,只有懂了这些,在开发的时候... 阅读全文
posted @ 2013-09-08 21:36 boblchen 阅读(640) 评论(0) 推荐(0)