【问题标题】:Combine material coefficients and textures in Phong Shading在 Phong Shading 中组合材质系数和纹理
【发布时间】:2018-07-07 08:41:06
【问题描述】:

我正在尝试实现一个简单的 Phong 着色器,它支持非基于物理的材质和纹理。即使材质对每个光分量都有纹理,我仍然希望各自的材质系数产生一些效果。我的疑问是如何处理这两个问题。我应该混合、相乘还是相加?现在我已经将它们相乘了:

ambient  = material.ambient_color  * light.ambient  * texture_ambient;
diffuse  = material.diffuse_color  * light.diffuse  * diffuse_strength  * texture_diffuse;
specular = material.specular_color * light.specular * specular_strength * texture_specular;

好像有点黑,这样结合材质系数和贴图的方式正确吗?

【问题讨论】:

  • 没有对错之分,因为它不是基于物理的。选择任何适合您的需求。

标签: opengl glsl shader phong shading


【解决方案1】:

这取决于。最终由您决定。如果太暗,请尝试其他方法。

您可以将材料系数应用于您的纹理。我想这就是它大部分时间的做法。但正如 BDL 提到的:这不是基于物理的,所以这完全取决于你,没有对错。

也就是说:如果您想将其分开,您可以尝试使用较高(更好)的材料系数。如果它们的范围仅从 0.9 到 1,它们不会使对象变暗太多。如果它们的范围从 0 到 1,您可以使用 smoothstep(0.9, 1, material.coefficient) 或类似的东西。

【讨论】:

    猜你喜欢
    • 2017-01-01
    • 2013-08-07
    • 1970-01-01
    • 2012-11-20
    • 1970-01-01
    • 1970-01-01
    • 2019-08-21
    • 1970-01-01
    • 2018-09-07
    相关资源
    最近更新 更多