/// <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 }
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); } }