[英]White sprite material?
因此,似乎SpriteMaterial
的默认颜色是0xFFFFFF
。 这似乎意味着该精灵没有颜色。 如果我将材质的颜色属性更改为0xFF0000
则精灵将显示为红色。
如果我想要白色怎么办? 您将如何实现?
如果要使子画面纹理更亮(更白),可以通过将颜色增加1.0以上来实现。 您不能使用十六进制值来执行此操作,而是使用以下命令:
obj.material.color = new THREE.Color( 2, 2, 2 );//or higher
请注意,1,1,1是纯白色的(灰色是0.5,0.5,0.5),因此您进入的颜色值将不再显示在屏幕上,因此将其剪切为白色
类似于photoshop,还有多种混合对象的方法,请看以下示例: http : //threejs.org/examples/?q= blend# webgl_materials_blending
添加剂混合是点燃火炬等的最佳方法。
您可以查看左下方的代码,了解如何将其应用于您的案例。 请注意,需要在您的材料上启用透明度才能使它们起作用
我不会在您的环境中编写代码,并且不知道您正在使用的混合数学或编码方式很难提供帮助,但通常会如下定义Sprite中的不透明度/透明度:
通过Alpha通道按颜色
在这种情况下,颜色的格式为0xAARRGGBB
因此,如果丢弃最高的8
位颜色,则将Alpha设置为零,这可能是完全透明或完全固态的材料,具体取决于所使用的混合方程式。 在这种情况下,只需添加alpha值即可。
有时,子画面具有包含Alpha通道或位掩码的单独图像掩码。
按颜色在特定像素位置
通常是精灵的角落。 因此,如果您的精灵被单一颜色完全填充,则意味着它是完全透明的。 这种透明编码根本不了解Alpha通道,因此您无法将颜色与其他子画面合并。 这种子画面只有孔(与特定像素位置的颜色相同)。 例如,图标使用此。
在这种情况下,请确定像素位置,例如将精灵划分为4个正方形,每个正方形具有不同的颜色。 哪一个未渲染是用于透明颜色的角...
通过特定的颜色
在这种情况下,一种特定的颜色用作透明色。 通常选择此颜色,以使它不会从调色板中丢失太多。 通常黑色或白色取决于背景或内容。 在这种情况下,如果0x00FFFFFF
表示透明,则可以尝试使用0x00FEFEFE
(这是第二高的白色/灰色阴影)。
因此,确定是哪一个,并相应地修复您的精灵。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.