Create proper demonstration scene of the spectrum effect

This commit is contained in:
kappa 2023-10-08 09:31:00 +02:00
parent 5dc461055e
commit c15ce0cf87

View file

@ -23,8 +23,9 @@ public class SpectrumTest extends Scene.Base {
var materialBlocks = (F1<Material, Vector>) (uv -> Material.matte(0.0)); var materialBlocks = (F1<Material, Vector>) (uv -> Material.matte(0.0));
var materialUVWallsL = Grid.standard(w -> 1.0); var materialUVWallsL = Grid.standard(w -> 1.0);
var materialUVWallsB = Grid.standard(w -> 1.0); var materialUVWallsB = Grid.standard(w -> 1.0);
var materialCoverBlock = Grid.standard(w -> 0.0);
var materialUVWallsR = (F1<Material, Vector>) (uv -> Material.MIRROR); var materialUVWallsR = Grid.standard(w -> 1.0);
var materialGlass = (F1<Material, Vector>) (uv -> Material.GLASS var materialGlass = (F1<Material, Vector>) (uv -> Material.GLASS
.refractiveIndex(w -> 5.6 + (w-400)/(800-400) * (1.55 - 5.6))); .refractiveIndex(w -> 5.6 + (w-400)/(800-400) * (1.55 - 5.6)));
@ -40,22 +41,33 @@ public class SpectrumTest extends Scene.Base {
// HalfSpace.pn(Vec3.xyz( 0, 1, 0), Vec3.xyz( 0, -1, 0), materialUVWalls), // HalfSpace.pn(Vec3.xyz( 0, 1, 0), Vec3.xyz( 0, -1, 0), materialUVWalls),
HalfSpace.pn(Vec3.xyz( 0, 0, 1), Vec3.xyz( 0, 0, -1), materialUVWallsB), HalfSpace.pn(Vec3.xyz( 0, 0, 1), Vec3.xyz( 0, 0, -1), materialUVWallsB),
HalfSpace.pn(Vec3.xyz( 0, 0, -6), Vec3.xyz( 0, 0, 1), materialUVWallsB), HalfSpace.pn(Vec3.xyz( 0, 0, -6), Vec3.xyz( 0, 0, 1), materialUVWallsB),
Ball.cr(Vec3.xyz(0, 3, 0), 0.8, materialLight), Ball.cr(Vec3.xyz(0, 6, 0), 0.8, materialLight),
Parallelepiped.pabc(Vec3.xyz(0, 0, 0), Parallelepiped.pabc(Vec3.xyz(-0.25, 0, 0.25),
Vec3.xyz(0.4, 0, 0), Vec3.xyz(0.6, 0.8, 0),
Vec3.xyz(0, 0.4, 0), Vec3.xyz(-0.2, -0.6, 0),
Vec3.xyz(0, 0, 6), Vec3.xyz(0, 0, -0.5),
materialGlass), materialGlass),
Parallelepiped.pabc(Vec3.xyz(-5.5 , 1, 1),
Vec3.xyz(4.5, 0, 0), Parallelepiped.pabc(Vec3.xyz(-1, 1, 1),
Vec3.xyz(0.75, 0, 0),
Vec3.xyz(0, 0.4, 0), Vec3.xyz(0, 0.4, 0),
Vec3.xyz(0, 0, -6), Vec3.xyz(0, 0, -6),
materialGlass), materialCoverBlock),
Parallelepiped.pabc(Vec3.xyz(0.5, 1, 1), Parallelepiped.pabc(Vec3.xyz(0.25, 1, 1),
Vec3.xyz(4.5, 0, 0), Vec3.xyz(2, 0, 0),
Vec3.xyz(0, 0.4, 0), Vec3.xyz(0, 0.4, 0),
Vec3.xyz(0, 0, -6), Vec3.xyz(0, 0, -6),
materialGlass) materialCoverBlock),
Parallelepiped.pabc(Vec3.xyz(-0.25, 1, 1),
Vec3.xyz(0.5, 0, 0),
Vec3.xyz(0, 0.4, 0),
Vec3.xyz(0, 0, -0.75),
materialCoverBlock),
Parallelepiped.pabc(Vec3.xyz(-0.25, 1, -0.25),
Vec3.xyz(0.5, 0, 0),
Vec3.xyz(0, 0.4, 0),
Vec3.xyz(0, 0, -6),
materialCoverBlock)
); );
solid = Group.of(solids); solid = Group.of(solids);