我是IT学生,我必须在VB6中创建一个项目,我正在考虑制作一个3D软件渲染器,但我真的不知道从哪里开始,我找到了一些教程,但我想要一些深入的东西使用数学和算法,我想要一些东西,展示如何进行3D变换,相机,灯光,阴影......
使用的编程语言并不重要,我只需要一些资源来告诉我如何制作这个。
所以我只想知道在哪里找到一些资源,或者你可以告诉我一些源代码并告诉我从哪里开始。
或者,如果你们中的任何人对VB6项目有更好的了解。
感谢。
答案 0 :(得分:5)
我不同意以前的帖子,3D渲染器实际上非常简单。然而,高质量的3D渲染器很难。
现在你将失去深度缓冲区,所以在开始时坚持使用线框。 : - )
不要听这些不说话的人,出去玩得开心!
答案 1 :(得分:3)
很多年前,我制作了一个阴影三角形渲染器,它使用库调用来绘制三角形。这是一种相当天真的方法,但您可以使用VB6获得相同的结果。我得到了所有的数学和数学Foley等人的“计算机图形学原理与实践”中的技术。有些部件现在已经过时,但我认为你会发现它对这个项目非常有帮助,例如它可以以合理的价格从亚马逊购买。
一种简单的方法可能是:
这包括线框查看。要将其扩展到隐藏曲面移除,您需要确定前面的三角形。两种可能的方式:
在此之后你还需要一些基于灯光的阴影。计算机图形学原理和实践涵盖了这些计算。对于简单的着色,您可以使用gdi坚持使用绘制三角形,但如果您想要进行gouraud或phong着色,则颜色值会在三角形中变化。解决这个问题的一种方法是将三角形细分为较小的三角形,但这样效率低,不会给出非常漂亮的效果。更好的方法是按照上面的软件深度缓冲区要求自己绘制三角形。
一个好的扩展是支持三角形以外的基元。基本方法是在读取时将基元分割成三角形。
祝你好运 - 可能是一个有趣的项目。答案 2 :(得分:1)
VB6不是最适合做数学和3D图形的语言,并且考虑到你之前没有关于这个主题的知识,我建议你选择不同的(并且更容易)。
因为它是Visual Basic,你可以尝试更多面向表单的东西,这是该语言的原始意图。
答案 3 :(得分:1)
有3D engine list列出了三个引擎的纯粹基础(一个矛盾)+源代码,其中一个是在Visual Basic(Dex3D)
DeX3D是一款开源3D引擎 完全用Visual Basic编写 Jerry Chen(-onlyuser@hotmail.com)。
- Gouraud阴影
- 透明度
- 起雾
- Omni和聚光灯
- 分层网格
- 支持3D Studio文件
- 粒子系统
- Bezier曲线段
- 2.5 D text
- Visual Basic源代码
更多信息,截图和 源可以在Dex3D上找到 主页。 (< = Dead Link)
答案 4 :(得分:1)
EGL25是一个快速开源VB 6渲染器,可以渲染,旋转,动画等由数千个多边形组成的复杂实体形状。只是Windows API调用 - 没有DirectX,没有OpenGL。
VBMigration.com chose EGL25作为一个高质量的开源VB6项目,用于演示他们的VB6到VB.Net升级工具。
答案 5 :(得分:0)
如果您以前从未这样做过3D软件渲染器整个项目相当复杂。我会建议更小的东西 - 比如只做3D部分并使用线条进行渲染或者只是写一个阴影三角形渲染器(无论如何都是3D渲染器的基础)。
有点简单,而不是试图在第一时间编写成熟的3D软件渲染器 - 尤其是在VB中。
答案 6 :(得分:0)
软件渲染器是一个非常困难的项目,并且根本没有显示语言VB6(对于像这样的c ++这样的任务的方式......),无论如何我可以建议你使用一些好书:
还有其他2本书。即使它们是用于VB.NET,您也可以找到一些有用的代码:
答案 7 :(得分:0)
我认为您可以采用两种方式使用Direct X方式并使用支持VB 5-6的DirectX 8。我找到了一个页面http://www.gamedev.net/reference/articles/article1308.asp
你总是可以编写一个引擎组,但这样做需要一些基本的线性代数,比如Frank Krueger建议的那样。