[英]Creating effects in 3D game from scratch, using c++ and DirectX
标题就是这样。 我找不到有关如何在3D游戏中实际建立效果的任何信息。 稍后我可能会继续使用某些引擎,但是为了理解这整个过程,我现在需要自己尝试一下。 我发现一些关于粒子系统的方法可能是正确的方法,但是DirectX和Google上的粒子系统之间的任何其他连接都给出了3DSmax等结果。
因此,如果您能为我提供一些指导性的教程或对其进行解释,我将不胜感激。最后一个可能性是使我指向专注于此问题的一些简单引擎(我并不是很想花很多时间编写代码,了解此引擎的工作原理后,我只需要查看他们如何实现此FX东西即可。
谢谢
PS:另一种可能是,如果您知道一本好书来解决这个问题。 它可能更复杂,但是除了教程之外,书籍通常写得更基础,因此这也是不错的选择
首先:粒子特效只是一种特效,最好指定粒子引擎:p一词。
其次:在Gamedev的文章中搜索 ,如果您想要这样的东西,那的确是最好的资源。 您可以在讨论板上找到很多文章,甚至更好的链接,以及有用的信息。 我可以链接的两篇文章是有关OpenGL中的粒子的NeHe课程 ,它不是DirectX的,但是OpenGL的NeHe教程非常好。 我还发现了一个用于Directx8和VB的 (太旧了)。
请记住,如果您无法自行优化粒子引擎,通常会对性能造成很大的影响,所以请尝试研究开源游戏引擎(例如OGRE)如何实现它甚至更好的特定粒子引擎。
因此,如果您能为此指出一些教程,我将不胜感激。
您需要下载Microsoft DirectX SDK 。 除此之外,您应该尝试NVidia SDK 。 您也可以尝试ATI SDK 。 研究他们全部。
除了它们...在OpenGL上还有几本书: “ Red Book” , “ Blue Book”和Orange Book 。 弗朗西斯·希尔(Francis Hill)的“使用OpenGL的计算机图形学”也是一个很好的例子。
获取此信息,然后开始阅读。
实际上如何在3D游戏中建立效果
这个问题太广泛了。 有灯光效果,粒子系统,后处理效果,物理效果(也是效果),甚至角色动画也是一种效果。 目前尚不清楚您在谈论哪种效果。
您认为更好的DirectX或OpenGL。
他们或多或少是平等的。 您可以在两者中做相同的事情。 尝试两者并选择您更喜欢的一个。 OpenGL更适合玩耍和实验(因为您可以轻松绘制三角形而不会弄乱硬件缓冲区),可在更多平台上使用,而且GLSL比HLSL更好(因为它不会“编译成汇编语言”)。 DirectX从一开始就着眼于性能,可以在XBox360上使用,而第9版确实不错。 openGL更“抽象”,而DirectX更接近硬件。
如果可以使用这些因素,例如简单性,使用范围,性能,示例数量和资源等
您需要选择目标,选择平台,选择API,研究可用的技术并开始编写代码。 想知道“哪个更好”是浪费时间。 3D知识和算法同样适用于两种API。
OpenGL是我感觉最好的选择。 Glut是免费提供的,具有实现粒子引擎所需的所有功能。 另外还有在线示例代码。 我喜欢函数的方式。 易于记忆和逻辑使用
学习D3D9.0c / D3D10的最佳书籍是Frank Luna。 只需将他放到亚马逊或Google中,您就会得到结果。 他教授如何从头开始构建成熟的游戏引擎。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.