繁体   English   中英

白色的精灵材料?

[英]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中的不透明度/透明度:

  1. 通过Alpha通道按颜色

    在这种情况下,颜色的格式为0xAARRGGBB因此,如果丢弃最高的8位颜色,则将Alpha设置为零,这可能是完全透明或完全固态的材料,具体取决于所使用的混合方程式。 在这种情况下,只需添加alpha值即可。

    有时,子画面具有包含Alpha通道或位掩码的单独图像掩码。

  2. 按颜色在特定像素位置

    通常是精灵的角落。 因此,如果您的精灵被单一颜色完全填充,则意味着它是完全透明的。 这种透明编码根本不了解Alpha通道,因此您无法将颜色与其他子画面合并。 这种子画面只有孔(与特定像素位置的颜色相同)。 例如,图标使用此。

    在这种情况下,请确定像素位置,例如将精灵划分为4个正方形,每个正方形具有不同的颜色。 哪一个未渲染是用于透明颜色的角...

  3. 通过特定的颜色

    在这种情况下,一种特定的颜色用作透明色。 通常选择此颜色,以使它不会从调色板中丢失太多。 通常黑色或白色取决于背景或内容。 在这种情况下,如果0x00FFFFFF表示透明,则可以尝试使用0x00FEFEFE (这是第二高的白色/灰色阴影)。

因此,确定是哪一个,并相应地修复您的精灵。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM