我正在OpenGL中实现MC算法。
一切都很顺利,直到我到达纹理坐标点。
我无法弄清楚如何实施它们!
我的进步:
编辑: 我要归档的是在我生成的MC三角形上放置一些纹理。 据我所知,我需要告诉OpenGL uv坐标,但不知道如何计算它们。
答案 0 :(得分:4)
用于行进立方体算法的典型纹理坐标生成算法是使用环境映射。
简而言之,您通过平均所有投影面的面法线来计算每个顶点的顶点法线,然后丢弃法线的z坐标并使用(x / 2 + 0.5,y / 2 + 0.5)作为( u,v)纹理坐标。
设置一个纹理,中间有一个漂亮的白点,一些结构填充纹理的其余部分,你得到终结器 - 两个银色机器人的外观。
答案 1 :(得分:3)
我需要告诉OpenGL uv坐标,但不知道如何计算它们。
你面临一些大问题:从MC出来的拓扑可以是任何东西。 OpenGL中纹理的拓扑结构是(超)圆环(GL_TEXTURE_1D,GL_TEXTURE_2D,GL_TEXTURE_3D)或球体(GL_TEXTURE_CUBE_MAP)。
所以你不可避免地要将表面切割成所谓的地图。这是一项非常重要的任务,但是qood策略是沿着具有高曲率的区域切割。见论文
“用于自动纹理图集生成的最小二乘保形贴图”
BrunoLévy,Sylvain Petitjean,Nicolas Ray和JéromeMaillot
http://alice.loria.fr/index.php/publications.html?Paper=lscm@2002
了解脏的细节。