Пример #1
0
        public void Config
        (
            ComputeBuffer drawArgsBuffer,
            ComputeBuffer getPointsBuffer,
            MudRendererBase renderer
        )
        {
            m_indirectDrawArgsData = new int[4];
            drawArgsBuffer.GetData(m_indirectDrawArgsData);

            m_numVerts      = m_indirectDrawArgsData[0];
            m_aGenPointData = new GenPoint[m_numVerts];
            getPointsBuffer.GetData(m_aGenPointData);

            RenderMaterial    = renderer.RenderMaterial;
            MasterColor       = renderer.MasterColor;
            MasterEmission    = renderer.MasterEmission;
            MasterMetallic    = renderer.MasterMetallic;
            MasterSmoothness  = renderer.MasterSmoothness;
            m_renderBoundsCs  = renderer.RenderBoundsCs;
            m_renderMode      = renderer.RenderMode;
            m_voxelDensity    = renderer.VoxelDensity;
            SplatSize         = renderer.SplatSize;
            SplatRotation     = renderer.SplatRotationJitter;
            SplatCameraFacing = renderer.SplatCameraFacing;

            CastShadows    = renderer.CastShadows;
            ReceiveShadows = renderer.ReceiveShadows;

            m_hash = Codec.Hash(GetHashCode());
            m_hash = Codec.HashConcat(m_hash, DateTime.Now.Ticks);

            Validate();
        }
Пример #2
0
        public virtual void OnEnable()
        {
            m_renderer  = null;
            m_iProxy    = AabbTree <MudBrushBase> .Null;
            m_iSdfBrush = -1;
            MarkDirty();

            ScanRenderer();
        }
Пример #3
0
        private void BindRenderResources()
        {
            MudRendererBase.ValidateShaderConstantId();

            m_renderMaterialProps.SetBuffer(MudRendererBase.Const.GenPoints, m_genPointsBuffer);

            m_renderMaterialProps.SetColor(MudRendererBase.Const.MasterColor, MasterColor);
            m_renderMaterialProps.SetColor(MudRendererBase.Const.MasterEmission, MasterEmission);
            m_renderMaterialProps.SetFloat(MudRendererBase.Const.MasterMetallic, MasterMetallic);
            m_renderMaterialProps.SetFloat(MudRendererBase.Const.MasterSmoothness, MasterSmoothness);

            m_renderMaterialProps.SetFloat(MudRendererBase.Const.SplatSize, SplatSize * (1.5f / m_voxelDensity));
            m_renderMaterialProps.SetFloat(MudRendererBase.Const.SplatRotationJitter, SplatRotation * MathUtil.Deg2Rad);
            m_renderMaterialProps.SetFloat(MudRendererBase.Const.SplatJitterNoisiness, SplatRotationNoisiness);
            m_renderMaterialProps.SetFloat(MudRendererBase.Const.SplatCameraFacing, SplatCameraFacing);
            m_renderMaterialProps.SetMatrix(MudRendererBase.Const.LocalToWorld, transform.localToWorldMatrix);
            m_renderMaterialProps.SetMatrix(MudRendererBase.Const.LocalToWorldIt, transform.localToWorldMatrix.inverse.transpose);
            m_renderMaterialProps.SetVector(MudRendererBase.Const.LocalToWorldScale, transform.localScale);
        }