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(); }
public virtual void OnEnable() { m_renderer = null; m_iProxy = AabbTree <MudBrushBase> .Null; m_iSdfBrush = -1; MarkDirty(); ScanRenderer(); }
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); }