学习3D地图引擎开发技术心得

 

现在市场上关于学习3D技术的书籍很多,有很多写的确实很好。个人认为好书的话一本就够了,书太多看的头晕眼花的也消化不了。我从开始学习到现在开了不下百本的相关资料,但主要还是围绕着基本学习资料在看。重要的是把一本书上的东西吃透就行。先说说我是怎么学的,各位也帮着我指导一下。

1,  由于从没接触过3D之类的开发(不过以前就是做软件的,还好有这个基础),什么D3D啊,OpengGL啊,一概不知。所以就先从最简单的开始。先了解3D引擎的软件实现原理,也就是软件3D图形引擎。这里推荐一本好书《3D游戏编程大师技巧》,这本是完全将的是软件实现方法,为啥都不懂的我做了一下启蒙教育。

2,  在熟悉、了解、掌握了以上的知识之后,开始自己动手用软件的方式实现了一个3D地图引擎。很粗糙,但廖胜于无。同时在实现的过程中又重新学习了一下书中的内容,俗话说的温故而知新确实很对。特别是象软件开发这种技术一定要在实践中才能真正掌握的。网上有一份《地形制作全攻略》的文档将的很不错,在这一阶段帮了我不少。

3,  这样我了解了一些3D图形引擎的概念、算法的含义、处理的流程。于是下一步打算使用目前通用的3D图形库实现我的第一个3D图形引擎。目前来说比较流行的是D3DOpenGL,由于主要的目标是想做一个下位机的3D地图引擎,所以把重点放在了OpenGL上。当然D3D我也尝试了一下。第一步便是在D3D上把我之前做的软件引擎进行了移植。效果还算不错。

4,  这个是重点。针对OpenGL图形库的3D地图引擎实现,目前还在学习中,已经把软件3D引擎移植到了OpenGL的平台上,这里有本书对我帮助很大,《OpenGL三维图形设计》,这本书完全从实际触发,源码解释都很详尽,好书啊。下一步是调用OpenGL本身的库函数进行相关实现,敬请期待吧。

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

 

OpenGL的函数库应用操作(有一本书《OpenGL编程指南》,对于想深入学习OpenGL的童鞋来说很不错):

1,调用gluPerspective和gluLookAt函数实现投影坐标变换。

2,使用z-Buffer方式实现三维图形的面消隐。

3,采用Gouraud方法实现渲染绘图,但光照处理在没有纹理的条件下效果不好

4,实现了纹理贴图的方法,这下可以使用光照模型对纹理贴图进行渲染了。

5,光照对纹理贴图的渲染效果并不理想,加上之后会有不平滑的现象产生(就是能很明显的看到渲染出的一块一块的三角形)。

    一开始以为是计算了每个三角形的顶点法线向量造成的不兼容,改成只计算每个三角形的面法线向量,但是结果依旧。

    不清楚是什么原因,先放一下吧,有哪位看客了解的,交流一下。

6,简单的地形跟踪算法实现。原来小小的地形跟踪也有很大的学问,深入下去估计能够写一篇论文。

2011-02-11:

经过以上的初步实践,再重新回过来看书。《OpenGL 2.0 精髓》这本书正在消化。

看来目前的水平差的还很远那!

关于glTexEnvi函数中的一些参数解释:

GL_REPLACE:将Texture color完全替换当前帧中的颜色

GL_MODULATE:默认方式。将当前帧中的颜色替换成Texture Color和incoming primary color的混合。该选项能与光照模型相连,能保留下环境光(Ambient)和散射光(diffuse)的光照效果。但对镜反射(specular)影响较大,所以需要用其他方式解决。

GL_ADD:在当前帧的颜色中添加Texture Color的效果。该选项可以处理镜反射(只在Opengl 1.3或以上版本中才有)。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值