/*
- * Sixth 3D engine. Author: Svjatoslav Agejenko.
+ * Sixth 3D engine. Author: Svjatoslav Agejenko.
* This project is released under Creative Commons Zero (CC0) license.
*/
package eu.svjatoslav.sixth.e3d.renderer.octree.raytracer;
cameraView.cameraCenter.y,
cameraView.cameraCenter.z),
new Point3D(
- cx3 - cameraView.cameraCenter.x, cy3
- - cameraView.cameraCenter.y, cz3
- - cameraView.cameraCenter.z)
+ cx3 - cameraView.cameraCenter.x, cy3
+ - cameraView.cameraCenter.y, cz3
+ - cameraView.cameraCenter.z)
);
final int c = traceRay(r);
if (intersectingCell != -1) {
// if lightening not computed, compute it
- if (octreeVolume.ce3[intersectingCell] == -1)
+ if (octreeVolume.cell3[intersectingCell] == -1)
// if cell is larger than 1
if (ray.hitCellSize > 1) {
// break it up
final Ray r1 = new Ray(
new Point3D(
- ray.hitCellX,
- ray.hitCellY - (float) 1.5,
- ray.hitCellZ),
+ ray.hitCellX,
+ ray.hitCellY - (float) 1.5,
+ ray.hitCellZ),
new Point3D((float) l.location.x - (float) ray.hitCellX, l.location.y
- - (ray.hitCellY - (float) 1.5), (float) l.location.z
- - (float) ray.hitCellZ)
+ - (ray.hitCellY - (float) 1.5), (float) l.location.z
+ - (float) ray.hitCellZ)
);
final int rt1 = octreeVolume.traceCell(0, 0, 0,
final Ray r2 = new Ray(
new Point3D(
- ray.hitCellX - (float) 1.5,
- ray.hitCellY, ray.hitCellZ),
+ ray.hitCellX - (float) 1.5,
+ ray.hitCellY, ray.hitCellZ),
new Point3D(
- l.location.x - (ray.hitCellX - (float) 1.5), (float) l.location.y
- - (float) ray.hitCellY, (float) l.location.z
- - (float) ray.hitCellZ)
+ l.location.x - (ray.hitCellX - (float) 1.5), (float) l.location.y
+ - (float) ray.hitCellY, (float) l.location.z
+ - (float) ray.hitCellZ)
);
final int rt2 = octreeVolume.traceCell(0, 0, 0,
}
final Ray r3 = new Ray(
- new Point3D (
- ray.hitCellX, ray.hitCellY,
- ray.hitCellZ - (float) 1.5),
new Point3D(
- (float) l.location.x - (float) ray.hitCellX, (float) l.location.y
- - (float) ray.hitCellY, l.location.z
- - (ray.hitCellZ - (float) 1.5))
+ ray.hitCellX, ray.hitCellY,
+ ray.hitCellZ - (float) 1.5),
+ new Point3D(
+ (float) l.location.x - (float) ray.hitCellX, (float) l.location.y
+ - (float) ray.hitCellY, l.location.z
+ - (ray.hitCellZ - (float) 1.5))
);
final int rt3 = octreeVolume.traceCell(0, 0, 0,
final Ray r4 = new Ray(
new Point3D(
- ray.hitCellX,
- ray.hitCellY+ (float) 1.5,
- ray.hitCellZ),
+ ray.hitCellX,
+ ray.hitCellY + (float) 1.5,
+ ray.hitCellZ),
new Point3D(
- (float) l.location.x - (float) ray.hitCellX, l.location.y
- - (ray.hitCellY + (float) 1.5), (float) l.location.z
- - (float) ray.hitCellZ)
+ (float) l.location.x - (float) ray.hitCellX, l.location.y
+ - (ray.hitCellY + (float) 1.5), (float) l.location.z
+ - (float) ray.hitCellZ)
);
final int rt4 = octreeVolume.traceCell(0, 0, 0,
final Ray r5 = new Ray(
new Point3D(
- ray.hitCellX + (float) 1.5,
- ray.hitCellY, ray.hitCellZ),
+ ray.hitCellX + (float) 1.5,
+ ray.hitCellY, ray.hitCellZ),
new Point3D(
- l.location.x - (ray.hitCellX + (float) 1.5), (float) l.location.y
- - (float) ray.hitCellY, (float) l.location.z
- - (float) ray.hitCellZ)
- );
+ l.location.x - (ray.hitCellX + (float) 1.5), (float) l.location.y
+ - (float) ray.hitCellY, (float) l.location.z
+ - (float) ray.hitCellZ)
+ );
final int rt5 = octreeVolume.traceCell(0, 0, 0,
octreeVolume.masterCellSize, 0, r5);
final Ray r6 = new Ray(
new Point3D(
- ray.hitCellX, ray.hitCellY,
- ray.hitCellZ + (float) 1.5),
+ ray.hitCellX, ray.hitCellY,
+ ray.hitCellZ + (float) 1.5),
new Point3D(
- (float) l.location.x - (float) ray.hitCellX, (float) l.location.y
- - (float) ray.hitCellY, l.location.z
- - (ray.hitCellZ + (float) 1.5)));
+ (float) l.location.x - (float) ray.hitCellX, (float) l.location.y
+ - (float) ray.hitCellY, l.location.z
+ - (ray.hitCellZ + (float) 1.5)));
final int rt6 = octreeVolume.traceCell(0, 0, 0,
octreeVolume.masterCellSize, 0, r6);
}
- final int cellColor = octreeVolume.ce2[intersectingCell];
+ final int cellColor = octreeVolume.cell2[intersectingCell];
red = (red * ((cellColor & 0xFF0000) >> 16)) / 255;
green = (green * ((cellColor & 0xFF00) >> 8)) / 255;
if (blue > 255)
blue = 255;
- octreeVolume.ce3[intersectingCell] = (((int) red) << 16)
+ octreeVolume.cell3[intersectingCell] = (((int) red) << 16)
+ (((int) green) << 8) + ((int) blue);
}
- if (octreeVolume.ce3[intersectingCell] == 0)
- return octreeVolume.ce2[intersectingCell];
- return octreeVolume.ce3[intersectingCell];
+ if (octreeVolume.cell3[intersectingCell] == 0)
+ return octreeVolume.cell2[intersectingCell];
+ return octreeVolume.cell3[intersectingCell];
}
// return (200 << 16) + (200 << 8) + 255;