public override bool Calculate() { Debug.Log("calc"); if (!allInputsReady()) { //Debug.LogError(" input no ready"); return(false); } if (Outputs == null || Outputs.Count == 0) { Debug.LogError(" null Outputs in " + this); return(false); } if (m_Wrapping) { m_Value6.Floor(); // = (FloatRemap)Mathf.Floor(m_Value6); m_Value5.Floor(); // = (FloatRemap)Mathf.Floor(m_Value5); } if (m_Param == null) { m_Param = new TextureParam(m_TexWidth, m_TexHeight); } if (m_perlin == null || m_perlin.GetPermutationTable1D() == null || m_perlin.GetGradient2D() == null) { m_perlin = new ImprovedPerlinNoise(m_seed); m_perlin.LoadResourcesFor2DNoise(); } if (m_Param != null) { switch (m_OpType) { case TexOP.PerlinBm: General(m_Value1, m_Value2, m_Value3, m_Param, ShaderOp.PerlinBm); break; case TexOP.PerlinTurb: General(m_Value1, m_Value2, m_Value3, m_Param, ShaderOp.PerlinTurb); break; case TexOP.PerlinRidge: General(m_Value1, m_Value2, m_Value3, m_Param, ShaderOp.PerlinRidge); break; case TexOP.VeroniNoise: General(m_Value1, m_Value2, m_Value3, m_Param, ShaderOp.VeroniNoise); break; case TexOP.Simplex3D: General(m_Value1, m_Value2, m_Value3, m_Param, ShaderOp.Simplex3D); break; } } //m_Cached = m_Param.GetHWSourceTexture(); CreateCachedTextureIcon(); Outputs[0].SetValue <TextureParam> (m_Param); CheckDiskIcon(name, m_Param); return(true); }
void Start() { m_perlin = new ImprovedPerlinNoise(m_seed); m_perlin.LoadResourcesFor2DNoise(); GetComponent <Renderer>().material.SetTexture("_PermTable1D", m_perlin.GetPermutationTable1D()); GetComponent <Renderer>().material.SetTexture("_Gradient2D", m_perlin.GetGradient2D()); }
// Use this for initialization void Start() { twoPowDimensionWidth = (int)Mathf.Pow(2, powerOfTwoSize); m_perlin = new ImprovedPerlinNoise(m_seed); m_perlin.LoadResourcesFor2DNoise(); compShade.SetTexture(compShade.FindKernel("CSProcGen"), "_Gradient2D", m_perlin.GetGradient2D()); compShade.SetTexture(compShade.FindKernel("CSProcGen"), "_PermTable1D", m_perlin.GetPermutationTable1D()); buffer[READ] = new ComputeBuffer(twoPowDimensionWidth * twoPowDimensionWidth, sizeof(float), ComputeBufferType.Default); buffer[WRITE] = new ComputeBuffer(twoPowDimensionWidth * twoPowDimensionWidth, sizeof(float), ComputeBufferType.Default); }
void Start() { m_waterDamping = Mathf.Clamp01(m_waterDamping); m_regolithDamping = Mathf.Clamp01(m_regolithDamping); float u = 1.0f / (float)TEX_SIZE; m_rectLeft = new Rect(0.0f, 0.0f, u, 1.0f); m_rectRight = new Rect(1.0f - u, 0.0f, u, 1.0f); m_rectBottom = new Rect(0.0f, 0.0f, 1.0f, u); m_rectTop = new Rect(0.0f, 1.0f - u, 1.0f, u); m_terrainField = new RenderTexture[2]; m_waterOutFlow = new RenderTexture[2]; m_waterVelocity = new RenderTexture[2]; m_advectSediment = new RenderTexture[2]; m_waterField = new RenderTexture[2]; m_sedimentField = new RenderTexture[2]; m_regolithField = new RenderTexture[2]; m_regolithOutFlow = new RenderTexture[2]; m_lavaField = new RenderTexture[2]; m_lavaVelocity = new RenderTexture[2]; m_lavaOutFlow = new RenderTexture[2]; m_terrainField[0] = new RenderTexture(TEX_SIZE, TEX_SIZE, 0, RenderTextureFormat.ARGBFloat); m_terrainField[0].enableRandomWrite = true; m_terrainField[0].wrapMode = TextureWrapMode.Clamp; m_terrainField[0].filterMode = FilterMode.Point; m_terrainField[1] = new RenderTexture(TEX_SIZE, TEX_SIZE, 0, RenderTextureFormat.ARGBFloat); m_terrainField[1].wrapMode = TextureWrapMode.Clamp; m_terrainField[1].filterMode = FilterMode.Point; m_waterOutFlow[0] = new RenderTexture(TEX_SIZE, TEX_SIZE, 0, RenderTextureFormat.ARGBHalf); m_waterOutFlow[0].wrapMode = TextureWrapMode.Clamp; m_waterOutFlow[0].filterMode = FilterMode.Point; m_waterOutFlow[1] = new RenderTexture(TEX_SIZE, TEX_SIZE, 0, RenderTextureFormat.ARGBHalf); m_waterOutFlow[1].wrapMode = TextureWrapMode.Clamp; m_waterOutFlow[1].filterMode = FilterMode.Point; m_lavaOutFlow[0] = new RenderTexture(TEX_SIZE, TEX_SIZE, 0, RenderTextureFormat.ARGBHalf); m_lavaOutFlow[0].wrapMode = TextureWrapMode.Clamp; m_lavaOutFlow[0].filterMode = FilterMode.Point; m_lavaOutFlow[1] = new RenderTexture(TEX_SIZE, TEX_SIZE, 0, RenderTextureFormat.ARGBHalf); m_lavaOutFlow[1].wrapMode = TextureWrapMode.Clamp; m_lavaOutFlow[1].filterMode = FilterMode.Point; m_waterVelocity[0] = new RenderTexture(TEX_SIZE, TEX_SIZE, 0, RenderTextureFormat.RGHalf); m_waterVelocity[0].wrapMode = TextureWrapMode.Clamp; m_waterVelocity[0].filterMode = FilterMode.Bilinear; m_waterVelocity[1] = new RenderTexture(TEX_SIZE, TEX_SIZE, 0, RenderTextureFormat.RGHalf); m_waterVelocity[1].wrapMode = TextureWrapMode.Clamp; m_waterVelocity[1].filterMode = FilterMode.Bilinear; m_lavaVelocity[0] = new RenderTexture(TEX_SIZE, TEX_SIZE, 0, RenderTextureFormat.RGHalf); m_lavaVelocity[0].wrapMode = TextureWrapMode.Clamp; m_lavaVelocity[0].filterMode = FilterMode.Bilinear; m_lavaVelocity[1] = new RenderTexture(TEX_SIZE, TEX_SIZE, 0, RenderTextureFormat.RGHalf); m_lavaVelocity[1].wrapMode = TextureWrapMode.Clamp; m_lavaVelocity[1].filterMode = FilterMode.Bilinear; m_waterField[0] = new RenderTexture(TEX_SIZE, TEX_SIZE, 0, RenderTextureFormat.RFloat); m_waterField[0].wrapMode = TextureWrapMode.Clamp; m_waterField[0].filterMode = FilterMode.Point; m_waterField[1] = new RenderTexture(TEX_SIZE, TEX_SIZE, 0, RenderTextureFormat.RFloat); m_waterField[1].wrapMode = TextureWrapMode.Clamp; m_waterField[1].filterMode = FilterMode.Point; m_lavaField[0] = new RenderTexture(TEX_SIZE, TEX_SIZE, 0, RenderTextureFormat.RFloat); m_lavaField[0].wrapMode = TextureWrapMode.Clamp; m_lavaField[0].filterMode = FilterMode.Point; m_lavaField[1] = new RenderTexture(TEX_SIZE, TEX_SIZE, 0, RenderTextureFormat.RFloat); m_lavaField[1].wrapMode = TextureWrapMode.Clamp; m_lavaField[1].filterMode = FilterMode.Point; m_regolithField[0] = new RenderTexture(TEX_SIZE, TEX_SIZE, 0, RenderTextureFormat.RFloat); m_regolithField[0].wrapMode = TextureWrapMode.Clamp; m_regolithField[0].filterMode = FilterMode.Point; m_regolithField[1] = new RenderTexture(TEX_SIZE, TEX_SIZE, 0, RenderTextureFormat.RFloat); m_regolithField[1].wrapMode = TextureWrapMode.Clamp; m_regolithField[1].filterMode = FilterMode.Point; m_regolithOutFlow[0] = new RenderTexture(TEX_SIZE, TEX_SIZE, 0, RenderTextureFormat.ARGBHalf); m_regolithOutFlow[0].wrapMode = TextureWrapMode.Clamp; m_regolithOutFlow[0].filterMode = FilterMode.Point; m_regolithOutFlow[1] = new RenderTexture(TEX_SIZE, TEX_SIZE, 0, RenderTextureFormat.ARGBHalf); m_regolithOutFlow[1].wrapMode = TextureWrapMode.Clamp; m_regolithOutFlow[1].filterMode = FilterMode.Point; m_sedimentField[0] = new RenderTexture(TEX_SIZE, TEX_SIZE, 0, RenderTextureFormat.RHalf); m_sedimentField[0].wrapMode = TextureWrapMode.Clamp; m_sedimentField[0].filterMode = FilterMode.Bilinear; m_sedimentField[1] = new RenderTexture(TEX_SIZE, TEX_SIZE, 0, RenderTextureFormat.RHalf); m_sedimentField[1].wrapMode = TextureWrapMode.Clamp; m_sedimentField[1].filterMode = FilterMode.Bilinear; m_advectSediment[0] = new RenderTexture(TEX_SIZE, TEX_SIZE, 0, RenderTextureFormat.RHalf); m_advectSediment[0].wrapMode = TextureWrapMode.Clamp; m_advectSediment[0].filterMode = FilterMode.Bilinear; m_advectSediment[1] = new RenderTexture(TEX_SIZE, TEX_SIZE, 0, RenderTextureFormat.RHalf); m_advectSediment[1].wrapMode = TextureWrapMode.Clamp; m_advectSediment[1].filterMode = FilterMode.Bilinear; m_tiltAngle = new RenderTexture(TEX_SIZE, TEX_SIZE, 0, RenderTextureFormat.RHalf); m_tiltAngle.wrapMode = TextureWrapMode.Clamp; m_tiltAngle.filterMode = FilterMode.Point; m_slippageHeight = new RenderTexture(TEX_SIZE, TEX_SIZE, 0, RenderTextureFormat.RHalf); m_slippageHeight.wrapMode = TextureWrapMode.Clamp; m_slippageHeight.filterMode = FilterMode.Point; m_slippageOutflow = new RenderTexture(TEX_SIZE, TEX_SIZE, 0, RenderTextureFormat.ARGBHalf); m_slippageOutflow.wrapMode = TextureWrapMode.Clamp; m_slippageOutflow.filterMode = FilterMode.Point; m_perlin = new ImprovedPerlinNoise(m_seed); m_perlin.LoadResourcesFor2DNoise(); MakeGrids(); }