private static void GetDetailClipmapOrigins(DelegateParameterArrayBinding<Vector2> binding, RenderContext context, Vector2[] values) { var origins = GetTerrainNode(context).DetailClipmap.Origins; for (int i = 0; i < Math.Min(origins.Length, values.Length); i++) values[i] = (Vector2)origins[i]; }
private static void GetTerrainClearValues(DelegateParameterArrayBinding<Vector4> binding, RenderContext context, Vector4[] values) { var terrain = GetTerrainNode(context).Terrain; var clearValues = (context.RenderPass == "Base") ? terrain.BaseClearValues : terrain.DetailClearValues; for (int i = 0; i < Math.Min(clearValues.Length, values.Length); i++) values[i] = (Vector4)clearValues[i]; }
private static void GetDetailClipmapCellSizes(DelegateParameterArrayBinding<float> binding, RenderContext context, float[] values) { var cellSizes = GetTerrainNode(context).DetailClipmap.CellSizes; for (int i = 0; i < Math.Min(cellSizes.Length, values.Length); i++) values[i] = cellSizes[i]; for (int i = 1; i < values.Length; i++) if (Numeric.IsNaN(values[i])) values[i] = values[i - 1] * 2; }