说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

开始3D编程前需注意的十件事

HTML文档下载 WORD文档下载 PDF文档下载
作者Vasily Tserekh是名3D编程爱好者,文中他分享了创建3D编程必做的十件事,有了这些向导,无论你是采用哪种语言或者是何种引擎,即使成不了专家但至少也会让你告别“小白”。

原文作者 Vasily Tserekh是名3D编程爱好者,他发表了一篇博文《 Ten Things to Achieve When Starting 3D Programming》文中他分享了创建3D编程必做的十件事。

开发者想要启动3D编程也并非是件易事,它不仅需要许多新技术,而且还需要根据不同的项目来选择编程语言从而设置正确的3D软件模型。

3D编程语言提供了一种更加容易的编写3D应用程序的方法,因为你使用的是一种专门为3D游戏设计的脚本语言来编写DirectX界面。这种语言不受3D引擎速度和自由度的影响,并且避免了使用“真正”编程语言带来的问题。

一起来看下文中提及的这10件事,有了这些向导,无论你是采用哪种语言或者是何种引擎,即使成不了专家但至少也会让你告别“小白”。

#1:构建自定义图形初始化功能

现今有关3D引擎和平台种类繁多。记得以前,必须通过所有的Windows功能来初始化OpenGL并且你还要学会如何通过管理窗口句柄和资源加载。在开展新项目时了解项目是如何进行内部管理的,这一点非常重要。我的建议是查看NEHE教程,它是用C语言编写的图形初始化功能,在第一章节还介绍了Windows APIs。此外,你还可以查看C++等价函数,网上有许多相关的示例,比如C#、Java、Python等都可以查看。

#2:创建自己的摄像机功能

你可以从互联网上复制或者粘贴摄像机代码,虽然使用起来并不会有什么问题,但你完全可以创建一款属于自己的相机,这就需要从头开始了解向量处理、转换矩阵、角度转换等。

首先你应该从FPS (First Person Shooter) 相机编码开始,如果你想要创建自己的一款游戏,我建议你不要急着使用它,先了解下 Virtual camera system这篇文章,根据自己的需求找到最适合您的相机类型。

#3:了解初级3D概念

当我开始接触3D概念时,我听说许多新名词比如anti-aliasing(反走样),anisotropic filtering(各向异性筛选,occlusion testing(闭塞实验),z-buffer(Z缓存),alpha testing(alpha测试),shader language(渲染语言),bump mapping(凹凸纹理映射)等。如果你是一名游戏玩家,当你为游戏配置图形设置时,这些名词也许对你来说并不感到陌生。

#4:学习向量和矩阵

很多开发者常会忽略这一点,我强烈建议为了正确的管理相机,光线追踪,地形追踪(terrain following)等,你应该好好了解这方面信息。此外,你还应该学习最小三角原理(minimum trigonometry basis)。

#5:为3D模型加载程序编码

我建议先从.OBJ file或者.STL  file开始,这是因为它们拥有同样的ASCII格式表示法。等你熟悉掌握后再转换到其复杂的格式比如:.3DS.。基于此,你不仅可以了解3D模型是如何保存的,还能绘制出其原始模式:triangles(三角),紧接着你就会明白如何绘制出图形引擎。

#6:使用碰撞算法(collision algorithm

绘制是一回事,而管理又是另外一回事。在虚拟的3D领域里,没有什么物理定律,因此你需要创建它们。如果你想要创建一个对象而又不想穿过这堵墙,那么你必须创建一个内部的几何表示法,使用所有的运算法,点击查看更多信息。

#7:执行迷你型的粒子引擎

当我发现火、烟雾、亮光以及其他一些令人惊艳的效果时我感到很失望。这些效果在粒子引擎打造的3D游戏中常会见到,而这些粒子本质上附在相机的表层纹理上。你添加的粒子越多,呈现出的效果越逼真,但是性能则相对较弱。我的第一个粒子引擎是为了制作火箭烟雾,起初我并没有看粒子引擎方面的教程。之后我才意识到,我已经彻底改造了轮子。但说实话我很乐意这样做。

#8:学习最基本的3D软件模型

为了在应用中使用更改的3D模型,你至少应该知道操作流程比如转换,缩放、旋转、变形,导出其他格式并且制作简单的模型。我曾做过一些软件模型,这里我强烈建议使用3D Max或Maya。

#9:加载和播放动画

在3D中想要加载并正确播放动画是比较困难的事情。我不得不给3D max .XAF文件采用反向工程( reverse engineering)。我必须去学习新的东西比如bone hierarchy,matrix interpolation(矩阵插值)等等。看到自己的模型在移动,我想这是件非常可喜的事情。我建议从动画机器人开始,这是因为该模型类似动物和人都需要另一种技术叫做Skinning。

#10:为2D自定义图形用户界面(GUI)编码

当我开始XNA编程时,我被迫创建自己的GUI,这是因为XNA无法兼容任何Windows控件。由此给我两点启示:一是,创建自己的自定义GUI控件;另一个则是理解概念,包括事件处理和事件追踪(事件捕捉)。这并不简单,最难的控件是我设置的列表框(listbox),但一旦当你完成创建后,你可以在任何地方使用。


图片来源于网络

网友Bigcoder在博客上发表了有关3D编程四个境界,笔者总结了以下几点:

  • 第一阶段:初学者阶段。这个阶段主要是熟悉3D图形学的基本原理和基本API的使用。
  • 第二阶段:进阶阶段。有人会选择直接学引擎,开发游戏;有人则会选择先学场景管理和高级渲染。
  • 第三阶段:3D成熟阶段。了解硬件的资源管理方式,结合自己的需求,解决资源的不当占用和带宽的随意浪费的情况。深入熟悉硬件,彻底了解显卡流水线的特性,充分利用流水线的特性进行优化,这个阶段是最煎熬的阶段,也是最开心的阶段。
  • 第四阶段:达人阶段。寻求解决方案,这个阶段技术已经不是唯一追求目的了,还有很多很多其他的方面他会关注。因为他的目的是让整个社会承认他的价值,只有技术是不够的。

看看你属于哪个阶段吧?

PS:也许3D模型我们并不陌生,但是3D编程对于笔者来说是个新词,文中出现了许多专业的词语,笔者也是抱着学习的态度进行翻译的,倘若你在这篇文章中发现了错误,或者认为翻译有误的地方,欢迎告之我,希望这篇文章对你有所帮助。

英文出自:Gamedev

《近匠》机智云CEO黄灼:跨越智能硬件的“鸿沟” 智能手机≠智能家居!我们要的究竟是什么? 亚信大数据事业部总经理张灏:打通各行业数据壁垒 让大数据变现畅通无阻 Web App和Native App不是生死之争,而是可以和平共处! 微信之父张小龙说微信坚持“去中心化”,这样真的好吗? 亚信CFO武军谈进军海外市场成功经验 前瞻性思维是开路先峰 Swift,任重而道远! DevOps系统的变迁 玩转Docker镜像 “扫描建模”速建AR应用 Vuforia 4.0 SDK更新 硅谷里的外星人:纵观Reddit十年风雨路 不见不散 Cloud Foundry Meetup活动将首次走进杭州 独立开发者:新手做2D手游该用哪些工具? 求安全化危机!Uber研发生物识别技术、聘请前亚马逊运营 JavaScript社区开发者调查:服务端JS盛行 AngularJS使用者最多 去中心化、去中介化,微信商业化路径清晰了吗? 微信企业号认证简化了,你造吗? 专访瀚思安信联合创始人:大数据技术助力企业实现主动智能防御 挑选IBM Bluemix作为云平台的10大理由 10年技术积累成就极光压缩引擎,欧朋流量宝5.0面世 【图文实录】12月19日CTO俱乐部走进杭州 mlpack:可伸缩C++机器学习库 本地项目托管将死?类GitHub站点永存! 2014年讨论最多的编程语言:JavaScript称霸 移动Web应用UI框架大比拼:Ionic vs. Famo.us vs. F7 vs. OnsenUI 面包旅行CTO薛亮:做旅游与社交有机结合的先行者 盘点开发者最喜爱的Swift技巧 2017年,开发者还能从移动广告中收获什么? 《近匠》茄子快传,让设备更好地连接 面向移动应用程序的DevOps五大挑战和十个最佳实践 Ruby 2.2.0发布,支持回收Symbol类型对象 请问如果数据量很大,比如大型企业的即时采集数据,应该用什么数据库系统处理呢?oracle,sysbase,db2,sqlserver还是cobol?? 这么简单的问题,难道就没有人能帮我了吗?!太遗憾了! 敬一杯“情人醉”给MM_mimi(人淡如菊),别人不要进来呀! 谁有过同样的遭遇??? 长整数除法的算法?? 关于Java Plug-in和Applet的一个问题 请求推荐有关SDK的好书!!!!!!! 我受不了了 个人主页链接如何让鼠标变成手形?谢谢! 老话题:三层结构中blob字段的存取出问题了? run-time类是怎么回事? 当多个程序对同一个文件进行读写操作,如何防止同时写入造成混乱? 求银行家算法的c程序! 请问W2K下面鼠标阴影的效果是用哪个API实现的? 我提议有编程经验的朋友们,一起来研究一种真正符合我们实际开发工作的模板 我用上kylix了!!!!!!! 请教,关于NT域用户的问题!NT账号,怎么设定唯一性呀?比如有aa的用户,我用aa登陆后,别人不能用aa同时登陆了?应该在那儿设置呀? Mfm1992?是个什么东西呀! 如何在informix/esql c中使用大事物? 如何保存收下來的email呢???!!!!! 关于一个网站建设的问题,望高手指点。 求救;如何建立一个登陆页面? 谁能给出一个远程访问互联网ACCESS数据库的经典代码?有28分送上! 怎样将-个十六进制数转换为十进制? 如何将java程序编译成dll文件 cannot focus a disabled or invisible window 一表我想通过文本框来增加记录,为何不能发送到表中,不要告诉我是没有post的原因。 奇怪,borland的开发能力这么强,为什么几乎没有一个象office那样流行的应用软件呢?如果它的应用软件很多,就不会象现在这样穷了吧? Delphi 数据库不如Power Builder 吗? 请问怎么安装新的控件? B样条曲线:如何由经过点反算控制点? Berzer曲线:如何由经过点反算控制点? 关于activereport的字符集问题 有没有计算曲线长度和交点的好方法? Install Shield For VC6怎么用???????????????????? ODBC数据库 ****有没有计算曲线长度和交点的好方法? ****Berzer曲线:如何由经过点反算控制点? ****B样条曲线:如何由经过点反算控制点? 有谁知道"边缘频率"、"中间频率"、"双频分析" 请问oicq登陆以后的住界面的我的蚝油dock是如何实现的,是什么vcl,或者自己写,如何实现?请指点! pfc的好处? 一个伪程序员的自白 不但给分,还给¥ 散分给喝过酒兄弟姐妹们(今天心情很不好,我深爱的人不爱我,苦痛,郁闷,多喝了几坛,请ghj1976、3B、roani谅解,最后一坛酒,感谢水园的朋友们) 怎样准备高程考试,还有三个月! 人生自古谁无错 -- 对青年时代的林仙儿心理活动的分析 小的大三,放暑假了,现在上海找一个单位实习,各位知情者请告知,定重谢! 请问如何让我做的程序一直在最底层呢、?? Oracle的外键是否能让所有有关联的表一起改变? 创建子窗口,子窗口又创建子窗口,在创建子子窗口时如何释放子窗口? 八年级下册数学书复习题16的8~12题(过程)人教版的 推荐一些简单的英文歌曲,适合学英语的.要好听一点的,最好是安静一点的.本人英语不太好~不要太慢的、想my love的速度差不多. 初中英语完形填空Two men were ( 1 ) in a very wild and lonely part of America.( 2 )days they had not even seen a huose,only a few huts made( 3) wood.Then one day they met an old Indian.They found that he knew their language.One of 八年级下册数学课本习题答案数学课本p90面的练习1、2、3p120面的练习2、9、p90习题的4、5、7、9、10、11、14、拜托了, \ 我从三年级起就没学过英语,我现在初二,我这个暑假学英语,我该怎么学 鲁教版八年级下册数学课本习题答案 六年级下册数学44页第一题怎么写? 七年级英语上典中点Unit11标准测试卷单项选择,完形填空阅读理解答案.感谢!别说要再买一本什么的.也别说什么自己努力.答得好再加50分 再次谢谢了! P104习题19.2 第十四题 复习题19 P122 第十二至十五题~ 六年级上册数学书100页答案 人教版七年级英语完形填空和阅读理解谁能给我一些题啊 八年级下册数学课本习题19.我们这章学的是 特殊的平行四边形第4题:在Rt三角形ABC中,∠C=90° ,AB=2AC,求∠A,∠B的度数!第9题:在Rt三角形ABC中,∠ABC=90°,CD⊥AB与点D,∠ACD=3∠BCD,点E 人教版六年级下册数学课本100页答案我只要第7题式子.在长12.4,宽7.2的长方形纸中,剪半径是1厘米的圆,能剪几个?结果要是28,求式子. 阅读理解与完形填空练习题 英语NBA is the most famous basketball game in the world.There ① a Chinese players in this game.His name is Yao Ming.He is ② player in this game.In his spare time,Yao ③ cars.On last Christmas, 八年级上册人教版数学课本习题15.1第6、10、11题答案 1:什么是十进制计数法?你能说出哪些计数单位?2:怎样比较两个数的大小?3:分数的基本性质和小数的基本性质有什么关系?4:小数点移动位置,小数大小会发生什么变化?5:因数、倍数、质 关于英语的完形填空和阅读理解题考英语的时候有一毛病,基础可以一点不错,但是完形和阅读我就惨了啊!各位提提做这些阅读题的方法吧! 人教版八年级上册数学课本习题12.1第三题答案 六年级下册数学书第77页答案写详细 完形填空练习书浙教版英语九年级完形填空的练习书有什么比较好的可以推荐的?英语基础还是不错的,但是完形方面不是很好。还有就是选词填空的练习书。推荐好的话我会再给分的;另 义务教育课程标准实验教科书八年级数学下册第16章 分式 第九页 7页第七.求 苏教版的 请推荐一本专门练完形填空和首字母的初中练习书和英语字帖.如果没有此类专门书籍,英语阅读练习类书籍也可.英语字帖不要练连笔的,最好说下出版社,毕竟重名的是有的. 八年级下华东师大版数学课本第十七章分式的全部习题答案 有的话追加到100 练习题 及习题 苏教版的六年级数学书上册的第二页第7题(2)小题 高中英语阅读理解和完形填空练习书哪个好 几道分式计算怎么做 试卷的题 带图顺便讲解下, 小学数学六年级上册练习与测试12-15页答案 第几页第级题写清楚 哪种高中完形填空的练习书是15个空的?英语完形填空 八下数学第三章 分式练习题1、当x等于什么数时,下列分式值为0?(x+2)(x+3)————— ←这是分数线x^2-42、已知x/2=y/3=z/1/2,则(x+3y-z)/(2x-y+z)的值是______3、如果a+1/a=3,那么分式a^2/a^4+a^2+1=_____4、化 小学数学六年级上册练习与测试111页到114页答案 英语题目(完形填空2道)1.I know it takes a (l ) more time.2.You can start your journey when you (w )to,and you don't (n ) to get to the station. 已知a+b+c≠0,(2a+b)/c=(2b+c)/a=(2c+a)/b=k,求k的值.请详解公式的含义等.已经知道答案是3,利用的是三个分式的分子相加比上分母相加.但是这个利用的哪个公式呢?什么样的定义,谁提出来的公式定义, 练习与测试小学数学6年级上册第12页第2题怎么解答? ——速求“Happy Fourthe of July!"Garrett loves to hear theae words.The Fourthe of July s his favourite h____.It celebrates when America won freedom from from England.It h____ on the fourthe day of July.Every year,Garrett's family goea to the big 新人教版八年级数学上册课本习题11. 一部分也可以。1.男生人数是女生的1.2倍。如果女生有x人,男生和女生一共有()人,男生比女生多()人。2.水果批发市场运来苹果3.5吨,运来的梨比苹果的2倍多0.1吨,运来的梨有()吨。3. 英语完形填空一道~He decided to ( ) a holiday in an excellent hotel in a big town.A.spend B.have 八年级上册数学课本习题11.2答案人教版的,急! 小学数学练习与测试6年级上册期中测试答案也就是43、44、45页答案,应用题算式尽量列出来好的给分!!! 急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急 I'm Tina.It's my birthday today.A_______of my friends come to my party.It's a very e_______party.(总归是填好的) 八年级下册数学教科书练习题16.3答案 急 求高手做完形填空We just don't treat each other 1. as thatlike thatthe way we used to. I suppose we don't have the time, 2. orbuthowever our lives are too difficult or something. Maybe the city 3. I liveI live inwhere I live in is too big. (首字母已给)Thomas Edison was one of the greatest American i___. 八年级上册数学课本44到45页练习答案..谁知道请告诉我一下.谢谢 初三完形填空题There are two kinds of music in the world-one is written down and the other is not.many people earn their living ____music.they write songs for pop stars and music for films and TV plays.they usually write exact institutions on _ 帮我解决2个问题:1个是完形填空,1个是根据首字母提示完成短文,完形填空:Tom is an ___ boy.He’s twelve ____He’s two years ____ than his brother,Jim.Tom is 150 cmand Jim is160 cm.Jim is 50 kilos and Tom is 60 kilos.Tom 北师大版八年级下册数学课本 19页第2题如图,在正方形ABCD中,AB等于4 AF=2 DF=1 ,图中有几个直角三角形?你是如何判断的?与同伴交流 老师让这样,我看不懂有点~1:be的平方=4方+2方=202:ef平方3 问一下怎么才能把英语的阅读理解和完形做好(具体的练习方法) 小学英语完形填空(首字母完形填空)Romeo and Juliet is one of Shakespeare's most famous p_____. 2.The biggest distiction b_____ the two versions is that the new one is written by the public. 3.The specific plot is provided by 八年级下册人教版数学书第36页第3题答案 暑假应当怎么学英语,我是新初三. 初中英语完形填空 1篇The gir got up on the horse.It was a brown__1__ white horse.It was big horse.She__2__on the horse's back.She was taller than her father.She looked__3__ at her father."Daddy,you are shorter than __4__' she said.Her daddy s 10题 暑假学英语,广州哪里去? 初中英语一道完形填空. 2大题的地4小题第四大题的第二小题有的谢谢 学英语有什么好方法(关于做听力、完形填空、阅读理解之类的题)今年6月份就要中考了.在英语方面,初一的时候感觉还没什么,但到了初三后,就感觉像完形填空、阅读理解之类的题有些困 一道初中英语的完型填空On the first day of school, the new teacher had a look at the list. The students’ names were written on it. 1 pleased the teacher was! Guess what she found?After each 2 name was a number, such as 138, 140, 154 a
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn