Esempio n. 1
0
            protected ShadowmapBase(ref BaseInit initializer)
            {
                m_Width            = initializer.width;
                m_Height           = initializer.height;
                m_Slices           = initializer.slices;
                m_ShadowmapBits    = initializer.shadowmapBits;
                m_ShadowmapFormat  = initializer.shadowmapFormat;
                m_SamplerState     = initializer.samplerState;
                m_CompSamplerState = initializer.comparisonSamplerState;
                m_ClearColor       = initializer.clearColor;
                m_WidthRcp         = 1.0f / initializer.width;
                m_HeightRcp        = 1.0f / initializer.height;
                m_MaxPayloadCount  = initializer.maxPayloadCount;
                m_ShadowSupport    = initializer.shadowSupport;
                m_ShadowId         = 0;

                if (IsNativeDepth() && m_Slices > 1)
                {
                    // TODO: Right now when using any of the SetRendertarget functions we ultimately end up in RenderTextureD3D11.cpp
                    //       SetRenderTargetD3D11Internal. This function sets the correct slice only for RTVs, whereas depth textures only
                    //       support one DSV. So there's currently no way to have individual DSVs per slice to render into (ignoring going through a geometry shader and selecting the slice there).
                    Debug.LogError("Unity does not allow direct rendering into specific depth slices, yet. Defaulting back to one array slice.");
                    m_Slices = 1;
                }
            }
Esempio n. 2
0
            public uint RequestSamplerSlot(ComparisonSamplerState css)
            {
                uint idx;

                if (m_CompSamplers.FindFirst(out idx, ref css))
                {
                    return(idx);
                }
                idx = m_CompSamplers.Count();
                m_CompSamplers.Add(css);
                return(idx);
            }