Skip to content

Commit ce4b609

Browse files
committed
Fix a bug.
1 parent 540bb8a commit ce4b609

File tree

3 files changed

+11
-6
lines changed

3 files changed

+11
-6
lines changed

Assets/Packages/Voxelizer/Scripts/Demo.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ void Start () {
2020
cube.transform.parent = transform;
2121
cube.transform.localPosition = voxel.position;
2222
cube.transform.localScale = voxel.size * Vector3.one;
23+
cube.transform.localRotation = Quaternion.identity;
2324
});
2425
}
2526

Assets/Packages/Voxelizer/Scripts/Voxelizer.cs

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -106,26 +106,30 @@ public static List<Voxel> Voxelize (Mesh mesh, int count = 10) {
106106
return voxels;
107107
}
108108

109-
static List<Voxel> Build (Ray ray, List<HitResult> results, float size) {
109+
static List<Voxel> Build (Ray ray, List<HitResult> results, float unit) {
110110
var voxels = new List<Voxel>();
111111

112112
for (int i = 0, n = results.Count; i < n; i++) {
113113
if(i % 2 == 0) {
114114
if(i == n - 1) { // last
115-
voxels.Add(new Voxel(ray.origin + results[i].distance * ray.direction, size));
115+
voxels.Add(new Voxel(ray.origin + Grid(results[i].distance, unit) * ray.direction, unit));
116116
}
117117
} else {
118-
var from = results[i - 1];
119-
var to = results[i];
120-
for(float distance = from.distance; distance < to.distance; distance += size) {
121-
voxels.Add(new Voxel(ray.origin + distance * ray.direction, size));
118+
var from = Grid(results[i - 1].distance, unit);
119+
var to = Grid(results[i].distance, unit);
120+
for(float distance = from; distance < to; distance += unit) {
121+
voxels.Add(new Voxel(ray.origin + distance * ray.direction, unit));
122122
}
123123
}
124124
}
125125

126126
return voxels;
127127
}
128128

129+
static float Grid (float distance, float unit) {
130+
return Mathf.FloorToInt(distance / unit) * unit;
131+
}
132+
129133
static bool Hit(Ray ray, List<Triangle> triangles, out List<HitResult> results) {
130134
results = new List<HitResult>();
131135
for (int i = 0, n = triangles.Count; i < n; i++) {

Captures/Demo.png

-27.5 KB
Loading

0 commit comments

Comments
 (0)