渲染模式就是这个值:

给实体设置后由引擎读取,它的键叫rendermode,可取值从0~5,一共6个值
enum
{
kRenderNormal,// src
kRenderTransColor,// c*a+dest*(1-a)
kRenderTransTexture,// src*a+dest*(1-a)
kRenderGlow,// src*a+dest -- No Z buffer checks
kRenderTransAlpha,// src*srca+dest*(1-srca)
kRenderTransAdd,// src*a+dest
};
从HLSDK\common\const.h中也可以看到就是这六个
V社给出的注释很清楚的说明了它的颜色混合方式
至于什么是混合?就是当红色玻璃和蓝色玻璃重合在一起的时候重合部分的像素应该是什么颜色的?是紫色(Alpha)还是粉色(add),或者红色/蓝色(完全透明和完全不透明)?
rendermode = 0,也就是rendermode=kRenderNormal的情况:
靠近自己的像素完全覆盖后面的像素
比如一个rendermode=0的箱子挡住了背景的一部分,你看到的就是完全不透明的箱子
对于固体和固体实体,他在引擎里渲染时是用
qglColor4f(1, 1, 1, 1);
来设置颜色,也就是说,你设置的rendercolor完全无效,不管怎样他都是完全不透明+保持贴图本来的颜色
对于spr等点实体,渲染kRenderNormal的实体时使用
qglTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
qglColor4ub(color.r, color.g, color.b, 255);
qglDisable(GL_BLEND);
其中color.r(g/b) = rendercolor.r(g/b) * 255 / 256
也就是说这个spr是完全不透明的一张纸板,用spr查看工具看到的是黑色背景,游戏里出来的就是黑色背景

给实体设置后由引擎读取,它的键叫rendermode,可取值从0~5,一共6个值
enum
{
kRenderNormal,// src
kRenderTransColor,// c*a+dest*(1-a)
kRenderTransTexture,// src*a+dest*(1-a)
kRenderGlow,// src*a+dest -- No Z buffer checks
kRenderTransAlpha,// src*srca+dest*(1-srca)
kRenderTransAdd,// src*a+dest
};
从HLSDK\common\const.h中也可以看到就是这六个
V社给出的注释很清楚的说明了它的颜色混合方式
至于什么是混合?就是当红色玻璃和蓝色玻璃重合在一起的时候重合部分的像素应该是什么颜色的?是紫色(Alpha)还是粉色(add),或者红色/蓝色(完全透明和完全不透明)?
rendermode = 0,也就是rendermode=kRenderNormal的情况:
靠近自己的像素完全覆盖后面的像素
比如一个rendermode=0的箱子挡住了背景的一部分,你看到的就是完全不透明的箱子
对于固体和固体实体,他在引擎里渲染时是用
qglColor4f(1, 1, 1, 1);
来设置颜色,也就是说,你设置的rendercolor完全无效,不管怎样他都是完全不透明+保持贴图本来的颜色
对于spr等点实体,渲染kRenderNormal的实体时使用
qglTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
qglColor4ub(color.r, color.g, color.b, 255);
qglDisable(GL_BLEND);
其中color.r(g/b) = rendercolor.r(g/b) * 255 / 256
也就是说这个spr是完全不透明的一张纸板,用spr查看工具看到的是黑色背景,游戏里出来的就是黑色背景