|
2D游戏和3D游戏在技术上有本质上的不同,2D游戏在画面基本上运用几何运算,然后靠贴图来完成的;而3D游戏需要设计者先在脑中或使用工具生成3D的模型(首选要有物体在3D空间中的点,然后再生成连接这些点的线框,每个面都是组成三角形组成),再用程序把贴图贴到每张图应该在的位置上,然后调整摄像机、目标的位置,最后再进行空间变换(将3D空间的图形映射到2D空间中)。经过以上这些步骤后,你就能看到你所创造的3D世界了。
在今天之前我只能绘制简单的线框3D图形,最多加入一些顶点颜色。昨天搞了一天的3D贴图(在程序里叫纹理),只知道如何截入贴图,其实还没有看到如何将纹理贴到指定的坐标位置的内容,就开始写代码了,只是想验证一下自己的想法。
结果,搞了一下午,还不行。就是一个3D正方体,我想通过一张图片,使它看上去像一个木质的箱子,但因为之前我只学到条形三角形和扇形三角形,如何使用共用顶点,如何使用顶点索引。所以在这种情况下我最多只能完整的贴上去4个面,最后差两个面(顶和底)怎么换坐标也贴不好,一贴上去别的面就都花了。
其实在我的印象里,已经有了不共享顶点,不用顶点索引这样的知识,但还是自己跟自己叫真。可怜的我,试了千百遍后还是放弃了这个想法。晚上送GF去她同学那,回到家看到那一段文章后才知道原来这样还真不行,非得使用完全顶点来贴不可。
于是动手,在纸上一个一个的计算顶点,计算纹理应该贴的位置,最后在凌晨1点钟的时候程序终于调度结束了,一个完整的木箱子展现在了我的眼前,心里真是感慨万千啊!!!
通过实验,每次我在贴了几个面之后,重新载了一张纹理,再往贴到另一个面(我的本意是想贴一个象色子那样的方块出来,每个面是不同图案的),结果以前贴的面也都换成新的纹理了,目前还不知道如何给不同的面贴不同的纹理,和如何在同一场景下渲染不同的物体。呵呵,抓紧时间学吧!!
通过这个小事情,我觉得有时候有想法是好事,但不一定非得去钻那个牛角尖,非得通过自己的实践去验证某些想法。如果是对于技术的不理解,通过这样的操作会使你对它有了一个比较清晰的认识,但大部分的情况下可能是在浪费时间。
人的时间是有限的,以后有想法的时候把它记下来就行了,等看过资料后再实做后,自己的想法自然得到印证,让前人的知识经验来节省自己的时间,要不然什么都要自己来做,那句话怎么说来的? 黄瓜菜都凉了!!!!!
不管怎么样,你可以看看我这两个例子,一个是共用顶点贴了四个面的“箱子”,一个是全顶点的真正箱子。可能我还处在技术上的小喜悦当中,对这个箱子怎么也看不够,哎~不会是有感情了吧!!哈哈
第一个看到我进步的人是我GF,我想让她看到我的每一点小进步! [em3] |
|