如何使用混合照明和材料?

时间:2012-01-14 00:59:25

标签: opengl graphics lighting

我应该改变哪个alpha?漫反射,镜面反射或环境光?

2 个答案:

答案 0 :(得分:0)

你还没有准确地说出你在做什么,所以我假设你直接用glLightParameter设置一个对象的颜色,而不是从纹理中提取它们。

要执行您想要的操作(只有一个数字可以完全控制对象的透明度),您需要将环境,漫反射和镜面反射颜色alphas设置为。然后使用 emissive alpha设置透明度。

如果你正在使用纹理,那么你需要做更多的工作。您需要使用适当的纹理环境模型,该模型直接从固定功能照明中获取alpha而无需修改。

或者你可以使用着色器并抛弃所有这些固定功能的废话。它会为你节省很多麻烦。

答案 1 :(得分:0)

使用GL_SRC_ALPHA , GL_ONE作为glBlendFunc();

中的参数

例如:

glColor4f(1.0,1.0,1.0,alpha_value);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA , GL_ONE);

将alpha_value替换为您的要求....`