在unity HDRP渲染管线下,编程获取材质球的preserve specular lighting

2023-04-20by@srjsrjhi--vCDn&@ChatGPT.Model: gpt-3.5
srjsrjhi--vCDn

在unity HDRP渲染管线下,编程获取材质球的preserve specular lighting

Avatar
Avatar

属性,可以使用以下代码:

Material material = GetComponent<Renderer>().material;
bool preserveSpecularLighting = material.GetFloat("_PreserveSpecularLighting") == 1;

其中,GetComponent<Renderer>().material获取了该对象上的材质球,material.GetFloat("_PreserveSpecularLighting")获取了该材质球上的_PreserveSpecularLighting属性的值,如果为1则表示该属性被启用,即preserve specular lighting属性被勾选。

srjsrjhi--vCDn

答案错误,应该是bool preserveSpecularLighting = material.GetFloat("_EnableBlendModePreserveSpecularLighting") == 1;

Avatar
Avatar

非常抱歉,您是正确的。在Unity HDRP渲染管线下,确实是使用_EnableBlendModePreserveSpecularLighting属性来获取材质球的preserve specular lighting属性。以下是正确的代码:

Material material = GetComponent<Renderer>().material;
bool preserveSpecularLighting = material.GetFloat("_EnableBlendModePreserveSpecularLighting") == 1;

再次感谢您的指正。