1
2
关于问题的纹理组合部分: 你研究过3d纹理吗?当我们在讨论行进立方体时,我应该马上说,我并不是在讨论体积纹理。相反,您可以将所有二维纹理叠加到三维纹理中。然后对每个纹理坐标进行编码,使其成为二维位置,并将其引用的纹理作为第三个坐标。如果你的纹理通常是那种类型的,从逻辑上讲,从一种模式转换到另一种模式,你必须通过中间层。 一个明显的使用示例是纹理映射到一个简单的高度贴图,上面可能有一个雪纹理,下面有一个岩石纹理,下面是一个草纹理,下面是一个水纹理。如果引用水的顶点与引用雪的顶点相邻,则几何体填充可以通过岩石和草纹理过渡。
您可能需要准备一个完整的绘制深度缓冲区(颜色遮罩全部设置为拒绝对颜色缓冲区的更改),然后切换到glu等深度测试,并在禁用对深度缓冲区的写入的情况下再次绘制。通过完全相同的变换绘制完全相同的几何图形应产生完全相同的深度值,而不考虑精度和精度问题。如果有问题,请使用glPolygonOffset。
常用且简单的映射有圆柱形、长方体和球形。概念化您的形状由圆柱体、长方体或球体限定,具有从表面点到纹理位置的定义良好的映射。然后,对于形状中的每个顶点,从其开始并沿法线向外移动,直到碰到边界几何体为止。然后获取将位于边界几何体上该位置的纹理位置。 我想有一个潜在的问题是,在立方体行进之后,法线往往不是很好,但我敢打赌你比我更了解这个问题。 |
2
1
这是一个既困难又有趣的问题。 最简单的方法是通过使用3D纹理贴图来完全避免这个问题,特别是如果您只想向等高线几何体添加一些随机的曲面细节。在着色器中实现的基于Perlin噪波的程序纹理对此非常有效。 困难的方法是研究 conformal texture mapping (也称为 conformal surface parametrization ),其目的是在二维纹理空间和三维几何体的表面之间生成某种意义上最优(最小扭曲)的映射。这个 paper 有一些好照片。注意几何的拓扑结构是非常重要的;很容易生成一个共形映射来将一个纹理映射到一个像大脑一样的封闭表面上,对于更高的 genus 需要引入剪切/撕裂/连接的对象。 |
3
0
您可能想尝试在Blender之类的工具中创建网格的UV贴图,以查看它们是如何做到的。如果我理解你的问题,你有一个三维场,它定义了一个实体体积和一个(连续的)颜色。您已经从体积创建了一个网格,现在需要使用从连续颜色空间提取的纹理将网格映射到二维纹理。在一个工具中,你可以在三维网格中定义“接缝”,你可以把它们分开,这样整个网格就可以平放,形成一个UV贴图。接缝处的纹理可能存在锯齿,因此当渲染网格时,这些接缝处的纹理也将不连续(即三角形条带无法穿过接缝,因为它是纹理中的不连续)。
|
4
0
由于纹理和一些约束的问题,我选择编写一个不同的算法来构建几何体,并在生成曲面时直接处理纹理。它的平滑度比行军立方体稍低,但允许我以适合我的项目的方式应用texcoords(而且速度更快)。
|
Jimmy Yang · 何时需要进行透视分割? 2 年前 |
Max Mister · 使用鼠标事件计算相机的位置和旋转 6 年前 |
Lane will · OpenGL选择区域 6 年前 |
synchronizer · openGL 2D视差滚动纹理撕裂/接缝 6 年前 |
Steven Venham · OpenGL单通道到多通道的可行性 6 年前 |
Andrew Lundgren · 如何在OpenTK(迷你地图!) 6 年前 |
Kevin Su · 无法在opengl中正确绘制我的汽车 6 年前 |
user1832287 · 来自细分控制点的边上的瑕疵 6 年前 |