﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-C++POWER</title><link>http://www.cppblog.com/VAMBAD/</link><description>CPP BLOG OF VAMBAD</description><language>zh-cn</language><lastBuildDate>Tue, 14 Apr 2026 23:06:16 GMT</lastBuildDate><pubDate>Tue, 14 Apr 2026 23:06:16 GMT</pubDate><ttl>60</ttl><item><title>游戏引擎底层矢量优化</title><link>http://www.cppblog.com/VAMBAD/archive/2007/04/30/23263.html</link><dc:creator>VAMBAD</dc:creator><author>VAMBAD</author><pubDate>Mon, 30 Apr 2007 14:35:00 GMT</pubDate><guid>http://www.cppblog.com/VAMBAD/archive/2007/04/30/23263.html</guid><wfw:comment>http://www.cppblog.com/VAMBAD/comments/23263.html</wfw:comment><comments>http://www.cppblog.com/VAMBAD/archive/2007/04/30/23263.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/VAMBAD/comments/commentRss/23263.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/VAMBAD/services/trackbacks/23263.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 最近的游戏引擎已经有个大概的样子了。不过还有许多东西要修改、添加。比如：粒子系统，总是感觉渲染的有点不对头，但就是看不出来。再看看吧～　　以下是ZVector的头文件ZVector.h&nbsp;1#ifndef&nbsp;_ZVector_H_&nbsp;2#define&nbsp;_ZVector_H_&nbsp;3&nbsp;4#include&nbsp;&lt;cmath&gt;&nb...&nbsp;&nbsp;<a href='http://www.cppblog.com/VAMBAD/archive/2007/04/30/23263.html'>阅读全文</a><img src ="http://www.cppblog.com/VAMBAD/aggbug/23263.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/VAMBAD/" target="_blank">VAMBAD</a> 2007-04-30 22:35 <a href="http://www.cppblog.com/VAMBAD/archive/2007/04/30/23263.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>发挥GPU强大动力的CG语言</title><link>http://www.cppblog.com/VAMBAD/archive/2007/04/20/22396.html</link><dc:creator>VAMBAD</dc:creator><author>VAMBAD</author><pubDate>Fri, 20 Apr 2007 09:58:00 GMT</pubDate><guid>http://www.cppblog.com/VAMBAD/archive/2007/04/20/22396.html</guid><wfw:comment>http://www.cppblog.com/VAMBAD/comments/22396.html</wfw:comment><comments>http://www.cppblog.com/VAMBAD/archive/2007/04/20/22396.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/VAMBAD/comments/commentRss/22396.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/VAMBAD/services/trackbacks/22396.html</trackback:ping><description><![CDATA[<p>&nbsp; </p>
<p align=left><span><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#183;</span></span></span><strong><span>CG</span></strong><strong><span>推出的背景因素：</span></strong></p>
<p align=left><span>　　目前大部分的图形渲染系统的流水线由于各种原因，功能被限制为某些特殊效果，不具备扩充性，依据这些流水线编制的软件，只能实现特定的效果，这是一些游戏无法展现许多效果的罪魁。按道理，</span><span>VertexShader</span><span>和</span><span>PixelShader</span><span>的可编程性可以改变这一切，实际上问题远非如此简单，由于编程的困难，即使一些常用的</span><span>API</span><span>增添了很多专门为此编写的函数，为了实现理想的特殊效果，还是必须使用直接控制</span><span>GPU</span><span>的汇编语言，难度极大，效率又低，挫伤了开发人员的积极性，具有可编程性的</span><span>VertexShader</span><span>和</span><span>PixelShader</span><span>的硬件并没有带来革命性的变化。在这个技术出来之后，大部分人仍然在埋怨，为什么硬件已经在技术上实现的功能无法被软件使用，惊人的图形效果只能在测试软件中看到，强大的硬件性能似乎成了一种摆设，这种状态从</span><span>GeForce256</span><span>一直延续到</span><span>Ti4600</span><span>。如果这种状态得不到改善，具体情况我不敢妄加猜测，至少就目前众多对</span><span>nVIDIA</span><span>疯狂升级的怀疑目光，正是</span><span>nVIDIA</span><span>最不愿看到的境况。<br></span></p>
<p align=center><img height=408 alt="" src="http://www.cppblog.com/images/cppblog_com/vambad/1041836866.jpg" width=500 border=0></p>
<p align=left><span><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&#183;</span></span></span><strong><span>脱胎于</span></strong><strong><span>C</span></strong><strong><span>语言</span></strong></p>
<p align=left><span>　　</span><span>CG</span><span>语言的诞生很好的解决了这一问题。</span><span>CG</span><span>（</span><span>C For Graphic</span><span>）高级语言脱胎于</span><span>C</span><span>语言，一个习惯了</span><span>C/C++</span><span>的程序员将很容易从传统的编程环境结合</span><span>OpenGL</span><span>转换到</span><span>CG</span><span>下，</span><span>CG</span><span>也集成了一些效果标准库，使一些标准效果不需要重新编写就可以得到直接应用，提高了工作效率。</span><span>CG</span><span>还具有良好的通用性和可移植性，可以绕开具体的</span><span>GPU</span><span>核心，达到更高的虚拟层，也就是说程序开发人员可以只注重概念，所要实现的效果而忽略具体的硬件实现环节。更令人高兴的是，</span><span>CG</span><span>使特殊的效果与具体的硬件分离，它的运行编译特性能够让用此编写的软件与各种平台和平相处。同时，它具有良好的向后兼容性，同一个程序能够在今后更好的硬件平台上实现更亮丽的效果，根本不需要进行重新编写优化，它的灵活性已经远远的走在了业界前列。这也意味着，以后出来的新硬件我们可以马上享受到其带来的好处，而不用苦苦等待针对新硬件开发出来的软件，这正是我们对硬件升级最怀疑的地方，让用户摆脱</span><span>&#8220;</span><span>升级</span><span>&#8221;</span><span>的循环，真正享受到专业制图的乐趣所在。<br></span></p>
<p align=center><img height=339 alt="" src="http://www.cppblog.com/images/cppblog_com/vambad/1041836888.jpg" width=427 border=0></p>
<p align=left><span>　　如前文所述，虽然可编程</span><span>GPU</span><span>具有良好的可编程性，但是复杂的步骤加上需要对硬件具体操作，已经让大部分程序员望而却步，并且游戏厂商为了游戏的销量，不太可能只为最高端的图形设备优化，也造就了目前</span><span>PC</span><span>游戏如此尴尬的局面。</span><span>CG</span><span>的确是连接这两者的优秀工具，具体硬件的抽象给硬件厂商与游戏开发商甚至消费者都大大减轻了负担，如果遵循同一个标准，软硬件双方都不用担心新技术的支持，甚至包括用户也应该感激这个技术的出现，至少这要比简单的提供所谓虚无缥缈的硬件新特性要好的多。<br></span></p>
<p align=center><img height=456 alt="" src="http://www.cppblog.com/images/cppblog_com/vambad/1041837040.jpg" width=500 border=0></p>
<p align=left><span>　　作为游戏爱好者，我们不应该只是局限于目前方头方脑的游戏人物形象，而需要更多更精细的模型，更逼真的环境，可是目前的环境，这一切似乎遥遥无期。实际上，对游戏开发商来说，这一切并不难，但是复杂程度确可能是翻倍都不止，并且还有可能费力不讨好，聪明的开发商们不会如此冒风险。</span><span>CG</span><span>是解决这个问题的良方，由于</span><span>CG</span><span>开发环境以及编译的动态性，说是能够实现惊人的效果一点不为过，更为实际的是，更多的游戏厂商能够接收和支持这种环境，创造一个共盈的空间。也由于</span><span>CG</span><span>的易用性，通过这个平台，更多的游戏将能够使用</span><span>GPU</span><span>的可编程特性，我们再也用不着为新硬件没有软件支持而担心，进一步的猜想在于，电影般效果的游戏也有可能登上</span><span>PC</span><span>。</span></p>
<p align=left><span>　　自从</span><span>DirectX 8</span><span>和</span><span>GeForce3</span><span>发布后，微软与</span><span>Nvidia</span><span>一直就在努力降低着色引擎的创建难度。着色引擎用于建立</span><span>Dot3</span><span>碰撞贴图等图形效果，它的与众不同之处在于着色引擎具有可编程性和可定制性。可编程效果具有更大的灵活性，更便于建立复杂的</span><span>3D</span><span>场景。<br></span></p>
<p align=center><img height=135 alt="" src="http://www.cppblog.com/images/cppblog_com/vambad/1041837103.jpg" width=180 border=0></p>
<p align=center><span>许多不同的效果聚合在一起实现了真实的皮肤效果。</span></p>
<p align=left><span>　　对拥有这种功能的当代显卡</span><span>GeForce3</span><span>、</span><span>GeForce4 Ti</span><span>、</span><span>ATI Radeon 8500</span><span>来说，开发商不得不使用汇编码令建立或修改着色引擎。这种低层语言以详尽的细节为基础告诉硬件该做些什么。曾经有那么一段时期，所有的</span><span>PC</span><span>应用都是使用汇编语言建立了，后来</span><span>C</span><span>语言的出现使越来越多的人学会的编程，也降低了复杂程序编制的工作强度。希望</span><span>CG</span><span>语言在</span><span>3D</span><span>图形领域也能起到同样的效果。使用</span><span>CG</span><span>建立的着色引擎可占三十行以上的代码，并其转换为一两行。可以预期会出现越来越多的</span><span>CG</span><span>着色引擎供游戏美工人员选择，他们可使用多种着色引擎建立桢的不同部分。从左边的图片可以看到，着色引擎以像素为基础进行工作，可以被分层化。</span><span><br></span><span>　　着色引擎对图形届来说不是什么新鲜事物了。它作为电影</span><span>CG</span><span>效果的一部分已经有一段时间了。来自电影公司的专业</span><span>3D</span><span>美工师使用一种名叫</span><span>RenderMan</span><span>的语言来建立并填充（在大量的服务器上）拥有几何、材质和着色引擎的</span><span>3D</span><span>场景。</span><span>Nvidia</span><span>由此获得了</span><span>CG</span><span>发展的灵感，希望</span><span>CG</span><span>能发展到类似于</span><span>RenderMan</span><span>的水平，能帮助电影美工人员建立</span><span>CG</span><span>内容。<br></span></p>
<p align=center><img height=135 alt="" src="http://www.cppblog.com/images/cppblog_com/vambad/1041837082.jpg" width=180 border=0></p>
<p align=center><span>五个材质用来建立这个逼真的面孔，这是</span><span>Nvidia</span><span>未来硬件的技术演示。</span></p>
<p align=left><span>　　这种高级图形语言是</span><span>DirectX 9</span><span>的一部分。虽然微软和</span><span>Nvidia</span><span>进行了合作，且</span><span>CG</span><span>可完美兼容</span><span>DX9</span><span>语言，但两者还是有一些区别的。两公司宣布的不同之处在于</span><span>CG</span><span>不但能兼容</span><span>DirectX 9</span><span>，而且能兼容</span><span>OpenGL</span><span>，这意味着</span><span>CG</span><span>是进行跨平台开发的制作人员的理想选择。<br></span></p>
<p align=center><img height=135 alt="" src="http://www.cppblog.com/images/cppblog_com/vambad/1041837150.jpg" width=180 border=0></p>
<p align=center><span>这个机器人模块上有大量的独立效果，展示了如何使用</span><span>CG</span><span>建立</span><span>2D</span><span>效果。</span></p>
<p align=left><span><span><span>&nbsp;&nbsp;&nbsp; &#183;</span></span></span><strong><span>CG</span></strong><strong><span>推出的背景因素：</span></strong><strong></strong></p>
<p align=left><strong><span>　</span></strong><span>　需要时，用</span><span>CG</span><span>编写的着色引擎被编译成适应特定硬件和</span><span>API</span><span>的汇编码令。微软和</span><span>Nvidia</span><span>将推出各自的编译器。除支持</span><span>OpenGL</span><span>外</span><span>Nvidia</span><span>的产品还将针对自己的硬件进行特别优化。</span><span>CG</span><span>在需要时才能编译意味着将有更多的兼容性，这不但表现在不同硬件间，也表现在不同代硬件间。</span><span>CG</span><span>效果可轻松编译运行在现在的</span><span>DirectX 8</span><span>硬件或</span><span>DirectX 9</span><span>平台上。</span></p>
<p align=left><span><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&#183;</span></span></span><strong><span>来自游戏开发商的支持</span></strong><strong></strong></p>
<p align=left><span>　　</span><st1:chsdate w:st="on" IsROCDate="False" IsLunarDate="False" Day="23" Month="12" Year="2002"><span>2002</span><span>年</span><span>12</span><span>月</span><span>23</span><span>日</span></st1:chsdate><span>，</span><span> NVIDIA</span><span>与</span><span>SGI</span><span>下属公司</span><span>Alias Wavefront&#228;</span><span>今日宣布联手推出能将高级实时渲染程序紧密整合到</span><span>Maya 4.5</span><span>里的</span><span>CG</span><span>插件。</span><span>CG</span><span>也称为高级渲染语言（</span><span>HLSL</span><span>），是</span><span>C</span><span>类高级图形编程语言，可使三维制作大师以及内容开发人员创作具有影院效果的影像，同时与之实时交互。</span><span> <br>&nbsp;&nbsp;&nbsp; </span><span>面向</span><span>Windows&#174;</span><span>的</span><span>Maya CG</span><span>插件第一次公开亮相是在</span><span>2002</span><span>年</span><span>7</span><span>月的</span><span>Siggraph</span><span>大会上，它由</span><span>NVIDIA</span><span>联合全球三维图形软件技术先驱</span><span>Alias Wavefront</span><span>开发而成，能够让</span><span>Maya 4.5</span><span>的用户充分利用</span><span>NVIDIA </span><span>图形芯片（</span><span>GPU</span><span>）的高级硬件渲染功能。现在，新插件即可从以下网站免费下载：</span><span><a href="http://www.aliaswavefront.com/maya/plugins/"><span>www.aliaswavefront.com/maya/plugins/</span></a>&nbsp; &nbsp;<a href="http://developer.nvidia.com/"><span>http://developer.nvidia.com</span></a></span><span>以及</span><span><a href="http://www.cgshaders.org/"><span>www.CGshaders.org</span></a></span></p>
<p align=left><span><span><span>&nbsp;&nbsp;&nbsp;&nbsp; &#183;</span></span></span><strong><span>CG</span></strong><strong><span>应用展示：</span></strong><strong></strong></p>
<p align=left><span>下面的截图是由</span><span>Presenter 3D</span><span>提供</span><span>,</span><span>使用了</span><span>nVIDIA</span><span>的</span><span>CG</span><span>技术并且结合了</span><span>Quadro4 900XGL</span><span>的</span><span>Shader</span><span>。这个场景能够随着视觉角度的变化而改变反射以及折射光线，所有场景均在</span><span>Anti-Alaising </span><span>（</span><span>4x, 9-tap Gaussian</span><span>）下实现。<br></span></p>
<p align=center><img height=390 alt="" src="http://www.cppblog.com/images/cppblog_com/vambad/1041837331.jpg" width=500 border=0><br></p>
<p align=center><img height=389 alt="" src="http://www.cppblog.com/images/cppblog_com/vambad/1041837339.jpg" width=500 border=0></p>
<p align=center><img height=345 alt="" src="http://www.cppblog.com/images/cppblog_com/vambad/1041837345.jpg" width=500 border=0><br></p>
<p align=center><img height=389 alt="" src="http://www.cppblog.com/images/cppblog_com/vambad/1041837357.jpg" width=500 border=0><br><img height=389 alt="" src="http://www.cppblog.com/images/cppblog_com/vambad/1041837368.jpg" width=500 border=0><br></p>
<p align=left><span><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&#183;</span></span></span><strong><span>CG</span></strong><strong><span>游戏展示：</span></strong><strong></strong></p>
<p align=left><strong><span>　　</span></strong><span>nVIDIA</span><span>的官方网站上公布了首款运用</span><span>CG</span><span>技术并支持</span><span>DirectX9</span><span>的一款动作类游戏</span><span>——Gun Metal</span><span>。该游戏由</span><span>Yeti Studios</span><span>开发，并由</span><span>Rage Software</span><span>发行。<br></span></p>
<p align=center><img height=375 alt="" src="http://www.cppblog.com/images/cppblog_com/vambad/1041837454.jpg" width=500 border=0><br></p>
<p align=center><img height=375 alt="" src="http://www.cppblog.com/images/cppblog_com/vambad/1041837475.jpg" width=500 border=0><br></p>
<p align=center><img height=375 alt="" src="http://www.cppblog.com/images/cppblog_com/vambad/1041837521.jpg" width=500 border=0></p>
<p align=left><span>　　</span><span>Gun Metal</span><span>是第一款利用</span><span>CG</span><span>语言开发制作的游戏。据称，游戏中共有</span><span>14</span><span>个令人兴奋的任务关卡，而且许多炫目的新特效将给玩家带来与众不同的视觉和游戏体验。</span><span><br></span><span>　游戏中</span><span>CG</span><span>独特的图形效果有：</span><span><br></span><span>　　</span><span>1.CG</span><span>：支持所有的界面材质</span><span><br></span><span>　　</span><span>2.CG</span><span>：在飞机造型上运用动态模糊效果</span><span><br></span><span>　　</span><span>3.CG</span><span>：更加真实的水面折射效果</span><span><br></span><span>　　</span><span>4.CG</span><span>：许多新的特性还在进一步摸索中</span><span><br></span><span>　　</span><span>5.DX9:</span><span>接近现实的火光效果</span><span><br></span><span>　　</span><span>6.DX9:</span><span>使用</span><span>128bit</span><span>浮点缓存模块，支持高对比色彩运用</span></p>
<p align=left><span>　　不过由于使用</span><span>CG</span><span>开发的关系，目前</span><span>ATi</span><span>显示卡不能运行此游戏，当然支持</span><span>DX9</span><span>的</span><span>Radeon 9500</span><span>和</span><span>9700</span><span>也不能运行此游戏。但是</span><span>Tommti Systems</span><span>网站研发的</span><span>&#8220;3d Analyze&#8221;</span><span>软件就解决了这个问题。下载</span><span>1.69</span><span>版本的</span><span>3d Analyze</span><span>，从</span><span>3d Analyze</span><span>软件界面左边的启动菜单，运行</span><span>Gun Metal.exe</span><span>，</span><span>3d Analyze</span><span>软件界面右边各种选项配置如下图所示。<br></span></p>
<p align=center><img height=274 alt="" src="http://www.cppblog.com/images/cppblog_com/vambad/1041837464.jpg" width=500 border=0></p>
<p align=left><span>　　到此，</span><span>CG</span><span>语言的介绍就讲完了，所有内容及图片均来自网络及</span><span>nVidia</span><span>网站。想进一步了解</span><span>CG</span><span>语言，可以去</span><span>nVidia</span><span>网站上下载相关文档及工具，自己操练～</span><span><br></span><span>　　最后再给几个有用的下载地址：</span><span><br></span><span>　　　</span><span>CG</span><span>最新版下载地址：</span><span><a href="http://developer.download.nvidia.com/cg/Cg_1.5/1.5.0/0019/Cg-1.5_Feb2007_Setup.exe"><span>http://developer.download.nvidia.com/cg/Cg_1.5/1.5.0/0019/Cg-1.5_Feb2007_Setup.exe</span></a></span></p>
<p align=left><span>　　　</span><span>CG</span><span>说明书：</span><span><a href="http://developer.download.nvidia.com/cg/Cg_1.5/1.5.0/0019/Cg_Specification.pdf"><span>http://developer.download.nvidia.com/cg/Cg_1.5/1.5.0/0019/Cg_Specification.pdf</span></a><br></span><span>　　　</span><span>3D</span><span>程序可视化优化工具：</span><span><a href="http://developer.download.nvidia.com/tools/ShaderPerf/NVShaderPerfInstaller_NVR100_2.01.0305.1925.exe"><span>http://developer.download.nvidia.com/tools/ShaderPerf/NVShaderPerfInstaller_NVR100_2.01.0305.1925.exe</span></a><br><a href="http://developer.download.nvidia.com/tools/NVPerfKit/2.2/NVPerfKit.exe"><span>http://developer.download.nvidia.com/tools/NVPerfKit/2.2/NVPerfKit.exe</span></a><br></span><span>　　　（因为最近在做</span><span>3D</span><span>游戏引擎，打算用来优化下运行演示时的</span><span>Demo</span><span>）</span><span><br><br></span><span>　　　最后再给个最近才发现的东西</span><span>——</span><span>谷歌中文输入法，我现在就正在用，还是很爽的。看起来是微软拼音和紫光输入法的综合。用起来真的不错。</span><span><br></span><span>下载：</span><span><a href="http://dl.google.com/pinyin/GooglePinyinInstaller.exe"><span>http://dl.google.com/pinyin/GooglePinyinInstaller.exe</span></a><br></span><span>介绍：</span><span><a href="http://tools.google.com/pinyin/feature.html"><span>http://tools.google.com/pinyin/feature.html</span></a></span></p>
<p>&nbsp;</p>
<img src ="http://www.cppblog.com/VAMBAD/aggbug/22396.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/VAMBAD/" target="_blank">VAMBAD</a> 2007-04-20 17:58 <a href="http://www.cppblog.com/VAMBAD/archive/2007/04/20/22396.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>新的开始~</title><link>http://www.cppblog.com/VAMBAD/archive/2007/04/09/21537.html</link><dc:creator>VAMBAD</dc:creator><author>VAMBAD</author><pubDate>Mon, 09 Apr 2007 07:22:00 GMT</pubDate><guid>http://www.cppblog.com/VAMBAD/archive/2007/04/09/21537.html</guid><wfw:comment>http://www.cppblog.com/VAMBAD/comments/21537.html</wfw:comment><comments>http://www.cppblog.com/VAMBAD/archive/2007/04/09/21537.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/VAMBAD/comments/commentRss/21537.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/VAMBAD/services/trackbacks/21537.html</trackback:ping><description><![CDATA[<p dir=ltr>以前的blogcn的blog废弃了。原因：贴出来的代码太难看，而且不易于维护<img height=20 src="http://www.cppblog.com/Emoticons/QQ/sad.gif" width=20 border=0>。<br>所以在这里申请了个blog。但是一直很忙，所以没来得及照顾<img height=18 src="http://www.cppblog.com/Emoticons/QQ/chris.gif" width=20 border=0>。<br>忙着实习所在公司的项目，忙着学习无奈的日语，忙着写毕业论文，忙着写我热爱的游戏引擎，忙着找工作，忙着偷闲使自己不忙着。。。。。。<br>最近终于有点时间了。毕业论文是关于3D游戏引擎的，由于最近把公司的项目做得差不多了，所以已经开始在写代码和论文了。<br>由于编写核心和框架时出现了一点问题，所以最后决定还是放弃DirectX的大部分功能模块特别是图形渲染，而使用上帝的恩赐——OpenGL，而使用DirectX的Audio和Input部分。毕竟OpenGL只是一个<span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">纯粹的图形<span lang=EN-US>API</span></span></p>
&nbsp;
<table cellSpacing=0 cellPadding=0 border=1>
    <tbody>
        <tr>
            <td vAlign=top width=174>
            <p align=center><strong><span>性能</span></strong></p>
            </td>
            <td vAlign=top width=204>
            <p align=center><strong><span>OpenGL</span></strong></p>
            </td>
            <td vAlign=top width=208>
            <p align=center><strong><span>DirectX</span></strong></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=174>
            <p><span>顶点混合</span></p>
            </td>
            <td vAlign=top width=204>
            <p><span>不适用</span></p>
            </td>
            <td vAlign=top width=208>
            <p><span>支持</span></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=174>
            <p><span>多操作系统</span></p>
            </td>
            <td vAlign=top width=204>
            <p><span>支持</span></p>
            </td>
            <td vAlign=top width=208>
            <p><span>不支持</span></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=174>
            <p><span>可扩展机制</span></p>
            </td>
            <td vAlign=top width=204>
            <p><span>支持</span></p>
            </td>
            <td vAlign=top width=208>
            <p><span>支持</span></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=174>
            <p><span>开发者</span></p>
            </td>
            <td vAlign=top width=204>
            <p><span>多成员委员会</span></p>
            </td>
            <td vAlign=top width=208>
            <p><span>Microsoft</span></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=174>
            <p><span>严格的规范</span></p>
            </td>
            <td vAlign=top width=204>
            <p><span>有</span></p>
            </td>
            <td vAlign=top width=208>
            <p><span>无</span></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=174>
            <p><span>双面光照</span></p>
            </td>
            <td vAlign=top width=204>
            <p><span>支持</span></p>
            </td>
            <td vAlign=top width=208>
            <p><span>不支持</span></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=174>
            <p><span>体纹理</span></p>
            </td>
            <td vAlign=top width=204>
            <p><span>支持</span></p>
            </td>
            <td vAlign=top width=208>
            <p><span>不支持</span></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=174>
            <p><span>设备无关的深度缓存</span></p>
            </td>
            <td vAlign=top width=204>
            <p><span>支持</span></p>
            </td>
            <td vAlign=top width=208>
            <p><span>不支持</span></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=174>
            <p><span>累积缓存</span></p>
            </td>
            <td vAlign=top width=204>
            <p><span>支持</span></p>
            </td>
            <td vAlign=top width=208>
            <p><span>不支持</span></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=174>
            <p><span>全屏反走样</span></p>
            </td>
            <td vAlign=top width=204>
            <p><span>支持</span></p>
            </td>
            <td vAlign=top width=208>
            <p><span>支持</span></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=174>
            <p><span>运动模糊</span></p>
            </td>
            <td vAlign=top width=204>
            <p><span>支持</span></p>
            </td>
            <td vAlign=top width=208>
            <p><span>支持</span></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=174>
            <p><span>场深度</span></p>
            </td>
            <td vAlign=top width=204>
            <p><span>支持</span></p>
            </td>
            <td vAlign=top width=208>
            <p><span>支持</span></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=174>
            <p><span>立体绘制</span></p>
            </td>
            <td vAlign=top width=204>
            <p><span>支持</span></p>
            </td>
            <td vAlign=top width=208>
            <p><span>不支持</span></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=174>
            <p><span>点尺寸<span>/</span>线宽属性</span></p>
            </td>
            <td vAlign=top width=204>
            <p><span>支持</span></p>
            </td>
            <td vAlign=top width=208>
            <p><span>不支持</span></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=174>
            <p><span>拾取</span></p>
            </td>
            <td vAlign=top width=204>
            <p><span>支持</span></p>
            </td>
            <td vAlign=top width=208>
            <p><span>不支持，但有实用函数</span></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=174>
            <p><span>参数曲线和曲面</span></p>
            </td>
            <td vAlign=top width=204>
            <p><span>支持</span></p>
            </td>
            <td vAlign=top width=208>
            <p><span>不支持</span></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=174>
            <p><span>高速几何缓存</span></p>
            </td>
            <td vAlign=top width=204>
            <p><span>显示列表</span></p>
            </td>
            <td vAlign=top width=208>
            <p><span>顶点缓存</span></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=174>
            <p><span>软件模拟</span></p>
            </td>
            <td vAlign=top width=204>
            <p><span>硬件不存在时</span></p>
            </td>
            <td vAlign=top width=208>
            <p><span>由应用程序决定</span></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=174>
            <p><span>借口</span></p>
            </td>
            <td vAlign=top width=204>
            <p><span>程序调用</span></p>
            </td>
            <td vAlign=top width=208>
            <p><span>COM</span></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=174>
            <p><span>更新</span></p>
            </td>
            <td vAlign=top width=204>
            <p><span>每年由（<span>ARB</span>）或扩展</span></p>
            </td>
            <td vAlign=top width=208>
            <p><span>每年更新</span></p>
            </td>
        </tr>
        <tr>
            <td vAlign=top width=174>
            <p><span>源代码公开</span></p>
            </td>
            <td vAlign=top width=204>
            <p><span>例程</span></p>
            </td>
            <td vAlign=top width=208>
            <p><span>Microsoft SDK</span></p>
            </td>
        </tr>
    </tbody>
</table>
<br><span>&nbsp;
<table cellSpacing=0 cellPadding=0 width="100%">
    <tbody>
        <tr>
            <td>
            <div>
            <p align=center><span>表1</span><span> OpenGL</span><span>和</span><span>DirectX</span><span>的比较</span></p>
            </div>
            </td>
        </tr>
    </tbody>
</table>
</span>通过比较OpenGL和DirectX后，我决定<span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">结合<span lang=EN-US>OpenGL</span>和<span lang=EN-US>DirectX</span>的优势来开发我的3D游戏引擎。并从中学习更多的关于<span lang=EN-US>OpenGL</span>和<span lang=EN-US>DirectX</span>的开发经验和知识。<br>目前还在考虑是否使用Tokamak或者Newton来作我的物理系统。如果有时间，还是想自己写~（我最大的梦想就是能做个像NFS那样的东东，或者参与。哎，夢はあくまでも夢！！！）<br>做游戏引擎真是不容易啊。不过我知道我的血液里面有游戏。加油吧~<br>最后来贴个目录，今天才交给老师，不知道会不会被骂，呵呵~~<br>不过我们老师也太残忍了。3月31日交目录，4月5日交初稿。要了亲命了~ -_-!<br><font style="BACKGROUND-COLOR: #ffff99" color=#990000><strong>Abstract<br>摘要<br>目录<br>绪论<br>第一章 引言<br></strong></font><font style="BACKGROUND-COLOR: #ffffcc" color=#ff6600><strong>1.1. 游戏引擎背景<br>1.2. 国内外发展状况<br>1.3. 研究与实现内容 <br></strong></font><font style="BACKGROUND-COLOR: #ffff99" color=#990000><strong>第二章 总体设计<br></strong></font><font style="BACKGROUND-COLOR: #ffffcc" color=#ff6600><strong>2.1. 引擎构架<br>2.2. 系统内子系统关系<br>2.3. 利用ZNode管理数据<br>2.4. 利用ZObject处理对象<br></strong></font><font style="BACKGROUND-COLOR: #ffff99" color=#990000><strong>第三章 引擎核心<br></strong></font><font style="BACKGROUND-COLOR: #ffffcc" color=#ff6600><strong>3.1. Windows消息和设备输入的处理<br></strong></font><font style="BACKGROUND-COLOR: #ffffcc" color=#ff9966><strong>3.1.1. 输入系统<br>3.1.2. ZEngine类<br></strong></font><font style="BACKGROUND-COLOR: #ffffcc" color=#ff6600><strong>3.2. 游戏循环<br></strong></font><font style="BACKGROUND-COLOR: #ffff99" color=#990000><strong>第四章 视点与场景<br></strong></font><strong><font style="BACKGROUND-COLOR: #ffffcc" color=#ff6600>4.1. 视点<br>4.2. 场景<br>4.3. 雾效<br></font><font style="BACKGROUND-COLOR: #ffff99" color=#990000>第五章 实体与模型</font><br></strong><strong><font style="BACKGROUND-COLOR: #ffffcc" color=#ff6600>5.1. 3D模型文件格式<br>5.2. MD2文件<br>5.3. 模型的添加<br>5.4. 镜像<br>5.5. 阴影<br></font><font style="BACKGROUND-COLOR: #ffff99" color=#990000>第六章 音频系统</font><br></strong><font style="BACKGROUND-COLOR: #ffffcc" color=#ff6600><strong>6.1. 利用DirectX Audio加载和播放音频<br>6.2. Audiopath的使用<br>6.3. 3D声音 <br></strong></font><font style="BACKGROUND-COLOR: #ffff99" color=#990000><strong>第七章 粒子系统<br></strong></font><strong><font style="BACKGROUND-COLOR: #ffffcc" color=#ff6600>7.1. 粒子<br>7.2. 粒子系统<br></font><font style="BACKGROUND-COLOR: #ffff99" color=#990000>第八章 物理系统</font><br></strong><strong><font style="BACKGROUND-COLOR: #ffffcc" color=#ff6600>8.1. 物理学<br>8.2. 物理建模<br>8.3. 真实世界的模拟<br></font><font style="BACKGROUND-COLOR: #ffff99" color=#990000>第九章 引擎性能测试、分析及优化</font><br></strong><font style="BACKGROUND-COLOR: #ffffcc" color=#ff6600><strong>9.1. 引擎测试<br>9.2. 性能分析<br>9.3. 优化措施<br></strong></font><font style="BACKGROUND-COLOR: #ffff99" color=#990000><strong>第十章 总结和展望<br>致谢<br>附录<br></strong></font><font style="BACKGROUND-COLOR: #ffffcc" color=#ff6600><strong>地形数据的生成<br>模型文件的生成<br>参考文献<br><br></strong><span style="COLOR: #000000; BACKGROUND-COLOR: #ffffff">补充下：测试和优化打算用Intel和nVidia的工具。听说很好用，没用过，试试~<br>到此打住，有时间再继续发帖来讨论关于3D游戏引擎的细节。<br></span><br></font><span style="BACKGROUND-COLOR: #ffffff"><br></span></span>
<img src ="http://www.cppblog.com/VAMBAD/aggbug/21537.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/VAMBAD/" target="_blank">VAMBAD</a> 2007-04-09 15:22 <a href="http://www.cppblog.com/VAMBAD/archive/2007/04/09/21537.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>