|
|
|
|
|
|
public class HDRISkyRenderer : SkyRenderer |
|
|
|
{ |
|
|
|
Material m_SkyHDRIMaterial; // Renders a cubemap into a render texture (can be cube or 2D)
|
|
|
|
private HDRISkySettings m_HdriSkyParams; |
|
|
|
MaterialPropertyBlock m_PropertyBlock; |
|
|
|
HDRISkySettings m_HdriSkyParams; |
|
|
|
m_PropertyBlock = new MaterialPropertyBlock(); |
|
|
|
} |
|
|
|
|
|
|
|
public override void Build() |
|
|
|
|
|
|
m_SkyHDRIMaterial.SetVector(HDShaderIDs._SkyParam, new Vector4(m_HdriSkyParams.exposure, m_HdriSkyParams.multiplier, m_HdriSkyParams.rotation, 0.0f)); |
|
|
|
|
|
|
|
// This matrix needs to be updated at the draw call frequency.
|
|
|
|
MaterialPropertyBlock properties = new MaterialPropertyBlock(); |
|
|
|
properties.SetMatrix(HDShaderIDs._PixelCoordToViewDirWS, builtinParams.pixelCoordToViewDirMatrix); |
|
|
|
m_PropertyBlock.SetMatrix(HDShaderIDs._PixelCoordToViewDirWS, builtinParams.pixelCoordToViewDirMatrix); |
|
|
|
CoreUtils.DrawFullScreen(builtinParams.commandBuffer, m_SkyHDRIMaterial, properties, renderForCubemap ? 0 : 1); |
|
|
|
CoreUtils.DrawFullScreen(builtinParams.commandBuffer, m_SkyHDRIMaterial, m_PropertyBlock, renderForCubemap ? 0 : 1); |
|
|
|
} |
|
|
|
|
|
|
|
public override bool IsSkyValid() |
|
|
|