/// <summary>
        /// Called when the parent sphere builds it's color
        /// </summary>
        public override void OnVertexBuild(VertexBuildData data)
        {
            Double    vHeight = (data.vertHeight - heightMin) / heightDelta;
            Int32     index;
            LandClass lcSelected = SelectLandClassByHeight(vHeight, out index);

            if (lcSelected.lerpToNext)
            {
                data.vertColor = Color.Lerp(data.vertColor,
                                            Color.Lerp(lcSelected.color, landClasses[index + 1].color,
                                                       (Single)((vHeight - lcSelected.altStart) / (lcSelected.altEnd - lcSelected.altStart))), blend);
            }
            else
            {
                data.vertColor = Color.Lerp(data.vertColor, lcSelected.color, blend);
            }
        }
            public override void OnVertexBuild(PQS.VertexBuildData data)
            {
                maximumAltitude = sphere.radiusMax;
                Double    vHeight = (data.vertHeight - sphere.radiusMin) / sphere.radiusDelta;
                Int32     index;
                LandClass lcSelected = SelectLandClassByHeight(vHeight, out index);

                if (lcSelected.lerpToNext)
                {
                    data.vertColor = Color.Lerp(data.vertColor,
                                                Color.Lerp(lcSelected.color, landClasses[index + 1].color,
                                                           (Single)((vHeight - (lcSelected.convertAltStart / maximumAltitude)) / ((lcSelected.convertAltEnd / maximumAltitude) - (lcSelected.convertAltStart / maximumAltitude)))), blend);
                }
                else
                {
                    data.vertColor = data.vertColor;
                }
                //enter data for else
            }
Esempio n. 3
0
		public override void OnVertexBuild (PQS.VertexBuildData data)
		{
			Color color;

			LandClass land = SelectLandClassByHeight (data.vertHeight);

			if (land == null)
			{
				color = baseColor;
				goto End;
			}
			else
				color = land.color;

			float noise = (float)simplex.noise (data.directionFromCenter);
			color = Color.Lerp (color, land.noiseColor, Mathf.Clamp (Mathf.Abs (noise), 0f, land.noiseThreshold));

			End:
			data.vertColor = color;
		}
 /// <summary>
 /// Called when the parent sphere builds it's color
 /// </summary>
 public override void OnVertexBuild(VertexBuildData data)
 {
     if (!buildHeightColors)
     {
         Double    d1         = terrainType.simplex.noiseNormalized(data.directionFromCenter);
         Double    tHeight    = Mathf.Clamp01((Single)((continentialHeightPreSmooth + d1 * terrainType.deformity) * (Single)((data.vertHeight - sphere.radius) / colorDeformity)));
         LandClass lcSelected = SelectLandClassByHeight(tHeight);
         Color     c1         = Color.Lerp(lcSelected.baseColor, lcSelected.colorNoise, (Single)(lcSelected.colorNoiseAmount * lcSelected.colorNoiseMap.simplex.noiseNormalized(data.directionFromCenter)));
         if (lcSelected.lerpToNext)
         {
             LandClass lcLerp = landClasses[landClasses.ToList().IndexOf(lcSelected) + 1];
             Color     c2     = Color.Lerp(lcLerp.baseColor, lcLerp.colorNoise, (Single)(lcLerp.colorNoiseAmount * lcLerp.colorNoiseMap.simplex.noiseNormalized(data.directionFromCenter)));
             c1 = Color.Lerp(c1, c2, (Single)((tHeight - lcSelected.fractalStart) / (lcSelected.fractalEnd - lcSelected.fractalStart)));
         }
         data.vertColor   = c1;
         data.vertColor.a = (Single)continentialHeightPreSmooth;
     }
     else
     {
         data.vertColor.r = data.vertColor.g = data.vertColor.b = (Single)((data.vertHeight - sphere.radius) / colorDeformity);
     }
 }
    public override void OnVertexBuild(PQS.VertexBuildData data)
    {
        var height = (data.vertHeight - sphere.radiusMin) / (sphere.radiusMax - sphere.radiusMin);

        height = Mathf.Clamp((float)height, 0, 1);
        LandClass curLandClass  = null;
        LandClass nextLandClass = null;

        for (var i = 0; i < landClasses.Length; i++)
        {
            var lc = landClasses[i];
            if (height >= lc.altStart && height <= lc.altEnd)
            {
                curLandClass = lc;
                if (lerp && i + 1 < landClasses.Length)
                {
                    nextLandClass = landClasses[i + 1];
                }

                break;
            }
        }
        if (curLandClass == null)
        {
            data.vertColor = Color.red;
        }
        else if (nextLandClass == null)
        {
            data.vertColor = Color.Lerp(data.vertColor, curLandClass.color, blend);
        }
        else
        {
            data.vertColor = Color.Lerp(data.vertColor, Color.Lerp(curLandClass.color, nextLandClass.color,
                                                                   (float)((height - curLandClass.altStart) / (curLandClass.altEnd - curLandClass.altStart))), blend);
        }
    }