Questions tagged «texture»

对于与纹理有关的问题:程序生成,编码,方面特征,过滤,映射,存储...

1
将纹理映射到双曲三角形
我一直在如何解决这个问题上停留了一会儿,所以任何建议将不胜感激! 我想以右下欧氏三角形的形式将纹理映射到Poincare磁盘上的双曲三角形。 这是纹理(纹理的左上角三角形是透明的且未使用)。您可能会认识到这是Escher's Circle Limit I的一部分 抱歉,看到评论,因为我似乎不允许张贴两个以上的链接! 这就是我的多边形的样子(它以原点为中心,这意味着两个边都是直线,但是通常所有三个边都是圆弧): 多边形的中心是由其顶点形成的欧几里得三角形的中心,我正在使用UV的中心对贴图进行UV映射,将其划分为与多边形具有相同数量的面,并将每个面映射到相应的多边形面上。但是结果看起来像这样: 如果有人认为使用UV映射可以解决此问题,我很乐意提供一些示例代码,但是我开始认为这可能是不可能的,我将不得不编写自己的映射函数。 由于AB,AC,BC线实际上可能是弧线而不是线,因此对@Nathan的答案进行了一些改进。 方法:选择最长的边,例如BC,然后将其细分为偶数个部分。将另外两个侧面细分为相同数量的零件。那么连接它们的线(下面答案中的DE)实际上也必须是弧线,而不是直线。根据需要细分这些新弧,添加新三角形作为面,然后将纹理的右下三角形UV映射到这些新面。 简单?一点也不。但这行得通。


1
使用所有可用的纹理单位是否是一种好习惯?
当将多个纹理应用于网格时(例如凹凸贴图),我通常将纹理绑定到前几个固定纹理单元,例如:diffuse = unit 0,bump = unit 1,specular = unit 2,然后继续将其重复使用具有不同纹理的不同网格。但是我一直想知道为什么glActiveTexture支持这么多的纹理单位(在上一个链接中,它至少说80个)。 因此,我想到管理纹理的一种可能方法是将不同的纹理绑定到每个可用的单元,并使它们保持启用状态,只是更新统一采样器索引。通过减少纹理开关的数量,可以提高渲染性能。如果纹理的数量少于最大纹理单位,则无需解绑纹理。 这是实时OpenGL应用程序的标准做法吗(我相信这也适用于D3D)?采用这种方法是否会对性能产生不明显的影响?可能是内存开销?
9 opengl  texture 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.