private float GetLightnessForVertex(Coord coord, int face, int index) { Coord.Direction2 vertex = new Coord.Direction1(face).UVPN(index); return(MakeLightnessForVertex(face, GetLightnessOnFace(coord, face), GetLightnessOnFace(coord.WithOffset(vertex.Devide(0).coord), face), GetLightnessOnFace(coord.WithOffset(vertex.Devide(1).coord), face), GetLightnessOnFace(coord.WithOffset(vertex.coord), face) )); }
private Vector4 GetAOOffset(Coord coord, int face) { Coord.Direction1 dir = new Coord.Direction1(face); var offsetCoord = coord.WithOffset(dir.coord); return(AmbientOcculsionTexture.MakeAOOffset( MakeAOInner(offsetCoord, dir.UVPN(0)), MakeAOInner(offsetCoord, dir.UVPN(1)), MakeAOInner(offsetCoord, dir.UVPN(2)), MakeAOInner(offsetCoord, dir.UVPN(3)))); }
private bool MakeAOInner(Coord coord, Coord.Direction2 dir) { return(AnyBlockAt(coord.WithOffset(dir.coord)) || AnyBlockAt(coord.WithOffset(dir.Devide(0).coord)) || AnyBlockAt(coord.WithOffset(dir.Devide(1).coord))); }
private bool IsNormalCubeBeside(Coord coord, Coord.Direction1 offset) { return(AnyBlockAt(coord.WithOffset(offset.coord))); }