假设我的世界中有一个 3d 对象,如下所示。
http://en.wikipedia.org/wiki/File:Graftal3.png
我还有一个节点存储有关如何绘制的信息,例如......
http://en.wikipedia.org/wiki/File:Graftal4.png
我如何从一个插值到另一个。根据我的研究,我知道我将不得不使用顶点着色器。但困扰我的主要部分是第二个模型比原始图像有更多的顶点。
我希望得到一些关于如何实现这种影响的指导。
谢谢!
假设我的世界中有一个 3d 对象,如下所示。
http://en.wikipedia.org/wiki/File:Graftal3.png
我还有一个节点存储有关如何绘制的信息,例如......
http://en.wikipedia.org/wiki/File:Graftal4.png
我如何从一个插值到另一个。根据我的研究,我知道我将不得不使用顶点着色器。但困扰我的主要部分是第二个模型比原始图像有更多的顶点。
我希望得到一些关于如何实现这种影响的指导。
谢谢!
对于您所描述的情况,顶点着色器是错误的。您想改用几何着色器。这要求您使用 Direct3D 10 或 OpenGL 3.2(或者带有合适扩展的 OGL2)
在几何着色器中,您向它提供基本几何数据,您可以根据需要从中发出额外的顶点。在您的情况下,您可能会用单行作为树的根,并根据需要对树进行细分。
您有多个着色器语言选项,具体取决于您打算让应用程序在其上运行的渲染系统。您尚未指定正在使用的渲染系统,实际实现将取决于此选择。
唯一真正的其他选择是以老式方式在着色器之外生成几何图形,然后在没有几何着色器的情况下渲染它,但仍根据需要使用顶点和像素着色器。
它还取决于您使用的 OGRE 版本。Ogre 1.6 及更高版本支持几何着色器,这应该没问题。