Sha256: cf9ef1b35b5d75bf16c0f9ebbe3bd73b4e4addb637397e2555501e5e6df03365
Contents?: true
Size: 1.37 KB
Versions: 6
Compression:
Stored size: 1.37 KB
Contents
package org.sunflow.core.shader; import org.sunflow.SunflowAPI; import org.sunflow.core.ParameterList; import org.sunflow.core.Shader; import org.sunflow.core.ShadingState; import org.sunflow.image.Color; public class AmbientOcclusionShader implements Shader { private Color bright; private Color dark; private int samples; private float maxDist; public AmbientOcclusionShader() { bright = Color.WHITE; dark = Color.BLACK; samples = 32; maxDist = Float.POSITIVE_INFINITY; } public AmbientOcclusionShader(Color c, float d) { this(); bright = c; maxDist = d; } @Override public boolean update(ParameterList pl, SunflowAPI api) { bright = pl.getColor("bright", bright); dark = pl.getColor("dark", dark); samples = pl.getInt("samples", samples); maxDist = pl.getFloat("maxdist", maxDist); if (maxDist <= 0) { maxDist = Float.POSITIVE_INFINITY; } return true; } public Color getBrightColor(ShadingState state) { return bright; } @Override public Color getRadiance(ShadingState state) { return state.occlusion(samples, maxDist, getBrightColor(state), dark); } @Override public void scatterPhoton(ShadingState state, Color power) { } }
Version data entries
6 entries across 6 versions & 1 rubygems