在表面上,以及在许多基本应用程序中,OpenGL®颜色的使用似乎非常简单。但是,渲染器中的某些情况和微妙之处有时会被忽略,但这会导致场景中出现意外结果。这些可能是由颜色的深度或硬件设置引起的。其他时候,一些简单的事情...
在表面上,以及在许多基本应用程序中,OpenGL®颜色的使用似乎非常简单。但是,渲染器中的某些情况和微妙之处有时会被忽略,但这会导致场景中出现意外结果。这些可能是由颜色的深度或硬件设置引起的。其他时候,一些简单的事情,如阴影模式可能会被忽略,渲染的结果也会出乎意料。最后,对OpenGL®颜色进行操作的更复杂的机制,例如灯光和材质,会极大地影响最终输出的外观。女性在使用OpenGL®的程序中要确定的一点是,所有这些都是正确的变量已设置。这意味着在渲染之前,确保根据需要将着色模式设置为“平坦”或“平滑”。颜色顺序也应设置为预期值。尽管几乎所有程序都使用红色、绿色和蓝色(RGB)顺序,在图像格式和其他因素中,反转顺序和使用蓝色、绿色和红色(BGR)模型更容易。OpenGL颜色的一个元素有时被忽略,有时也很困难。虽然开发中的程序可能会创建为使用开发系统监视器的颜色深度,另一个用户的监视器的深度可能不一样。这意味着,如果一个程序是用24位颜色深度开发的,并且在16位颜色深度或索引颜色模型的系统上运行,则场景将无法正确渲染,并且程序可能看起来不工作。为可用颜色建立和调整深度可以避免这种类型的挫败感。OpenGL®颜色的两个方面具有广泛的细微差别,能够产生不需要的结果,这是照明和材料系统。使用照明时,重要的是要考虑到灯光与对象的交互方式以及灯光的潜在颜色(如果已定义)如果放置和设置不正确,光源可能会洗掉颜色或改变其外观。实验可能是在保持场景气氛和精确渲染颜色之间找到正确平衡的唯一方法。材质系统可以完全更改对象表面上的OpenGL®颜色。设置“环境光”、“漫反射”或“高光”值过高会导致对象渲染为完全白色,而其他设置会使对象变黑或不可见。场景光源上的设置也会使材质系统复杂化。使用材质时,通过详细了解每个属性的作用,可以避免许多问题。最后,了解OpenGL颜色中使用的alpha通道非常重要。这是除了决定对象透明度的颜色的RGB值之外的第四个值。许多程序员在尝试设置alpha值以生成半透明对象时感到沮丧,但后来才发现漫反射属性颜色专门用于确定整个对象的alpha值。对象的绘图顺序,无论以后的转换如何,也决定了alpha值是如何工作的。这意味着透明的对象,然后转换到稍后绘制的对象前面的位置,由于渲染顺序的关系,将不会显示该对象后面的对象
-
发表于 2020-08-07 23:24
- 阅读 ( 923 )
- 分类:电脑网络