Compare commits
	
		
			2 Commits
		
	
	
		
			13b0384c54
			...
			4078e026ef
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 4078e026ef | |||
| 56147ed325 | 
							
								
								
									
										97
									
								
								index.html
									
									
									
									
									
								
							
							
						
						
									
										97
									
								
								index.html
									
									
									
									
									
								
							| @ -20,18 +20,41 @@ | ||||
|     <body> | ||||
|         <canvas></canvas> | ||||
| <script type="module"> | ||||
| import { Scene, THREE } from './scene.js'; | ||||
| import { Region } from "./region.js"; | ||||
| 
 | ||||
| let voxels = []; | ||||
| voxels[Region.I(2, 2, 2)] = true; | ||||
| voxels[Region.I(3, 2, 2)] = true; | ||||
| console.log(Region.Surface(voxels)); | ||||
| let surfaceTest = () => | ||||
| { | ||||
|     let voxels = []; | ||||
|     voxels[Region.I(2, 2, 2)] = true; | ||||
|     voxels[Region.I(2, 3, 2)] = true; | ||||
|     let surface = Region.Surface(voxels) | ||||
|     console.log(surface); | ||||
| 
 | ||||
| </script> | ||||
| <!-- | ||||
| <script type="module"> | ||||
|     import { Scene, THREE } from './scene.js'; | ||||
|     let surfaceGeometry = new THREE.BufferGeometry(); | ||||
|     surfaceGeometry.setAttribute('position', new THREE.BufferAttribute(surface.vert, 3) ); | ||||
|     surfaceGeometry.setIndex(surface.triPointVert); | ||||
|     surfaceGeometry.computeVertexNormals(); | ||||
| 
 | ||||
|     let surfaceObject = new THREE.Mesh( | ||||
|         surfaceGeometry, | ||||
|         new THREE.MeshBasicMaterial({color:0xaa9900, wireframe:true}) | ||||
|     ); | ||||
| 
 | ||||
|     return { | ||||
|         DOM:"canvas", | ||||
|         Init(inScene) | ||||
|         { | ||||
|             inScene.add(surfaceObject); | ||||
|             inScene.add(new THREE.GridHelper(10, 10)); | ||||
|         }, | ||||
|         Update(inScene, inDelta){} | ||||
|     }; | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| let smoothTest = () => | ||||
| { | ||||
|     let average = (inArray, inPointInd, ...inOthersInd) => | ||||
|     { | ||||
|         let sum = [0, 0, 0]; | ||||
| @ -92,19 +115,6 @@ console.log(Region.Surface(voxels)); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|      | ||||
|     /* | ||||
|     let testPoints = | ||||
|     [ | ||||
|          0,  0,  0, | ||||
|          0,  1,  0, | ||||
|          1,  1,  0 | ||||
|     ]; | ||||
|     console.log(testPoints); | ||||
|     average(testPoints, 1, 0, 2); | ||||
|     console.log(testPoints); | ||||
|     */ | ||||
| 
 | ||||
|     let path = (inPoints, inSmoothing, inColor) => | ||||
|     { | ||||
|         let clone = [...inPoints]; | ||||
| @ -119,33 +129,29 @@ console.log(Region.Surface(voxels)); | ||||
|         output.add( new THREE.Points( geometry, materialPoint ) ); | ||||
|         return output; | ||||
|     } | ||||
| 
 | ||||
|     const points = | ||||
|     [ | ||||
|          4,  0,  0, | ||||
|          3,  0,  0, | ||||
|          2,  0,  0, | ||||
|          1,  0,  0, | ||||
|             4,  0,  0, | ||||
|             3,  0,  0, | ||||
|             2,  0,  0, | ||||
|             1,  0,  0, | ||||
|         // | ||||
|          0,  0,  0, | ||||
|          0,  1,  0, | ||||
|          1,  1,  0, | ||||
|          2,  1,  0, | ||||
|          2,  2,  0, | ||||
|          3,  2,  0, | ||||
|          4,  2,  0, | ||||
|          4,  3,  0, | ||||
|          // | ||||
|          5,  3,  0, | ||||
|          5,  2,  0, | ||||
|          5,  1,  0, | ||||
|          5,  0,  0, | ||||
|             0,  0,  0, | ||||
|             0,  1,  0, | ||||
|             1,  1,  0, | ||||
|             2,  1,  0, | ||||
|             2,  2,  0, | ||||
|             3,  2,  0, | ||||
|             4,  2,  0, | ||||
|             4,  3,  0, | ||||
|             // | ||||
|             5,  3,  0, | ||||
|             5,  2,  0, | ||||
|             5,  1,  0, | ||||
|             5,  0,  0, | ||||
|     ]; | ||||
| 
 | ||||
| 
 | ||||
|     /* | ||||
|     Scene( | ||||
|     { | ||||
|     return { | ||||
|         DOM:"canvas", | ||||
|         Init(inScene) | ||||
|         { | ||||
| @ -157,8 +163,9 @@ console.log(Region.Surface(voxels)); | ||||
| 
 | ||||
|         } | ||||
|     } | ||||
|     ); | ||||
|     */ | ||||
| }; | ||||
| 
 | ||||
| Scene(surfaceTest()); | ||||
| 
 | ||||
| </script> | ||||
| 
 | ||||
|  | ||||
							
								
								
									
										18
									
								
								region.js
									
									
									
									
									
								
							
							
						
						
									
										18
									
								
								region.js
									
									
									
									
									
								
							| @ -104,21 +104,23 @@ export const Region = | ||||
|             { | ||||
|                 let [x, y, z] = Region.XYZ(i); | ||||
| 
 | ||||
|                 console.log("at", x, y, z); | ||||
| 
 | ||||
|                 // bottom: at, "up", corner, right
 | ||||
|                 BA = i; | ||||
|                 BU = Region.I(x+1, y,   z); | ||||
|                 BC = Region.I(x+1, y+1, z); | ||||
|                 BR = Region.I(x,   y+1, z); | ||||
|                 BU = Region.I(x,   y+1, z  ); | ||||
|                 BC = Region.I(x+1, y+1, z  ); | ||||
|                 BR = Region.I(x+1, y,   z  ); | ||||
| 
 | ||||
|                 // top: at, "up" corner, right
 | ||||
|                 TA = Region.I(x,   y,   z+1); | ||||
|                 TU = Region.I(x+1, y,   z+1); | ||||
|                 TU = Region.I(x,   y+1, z+1); | ||||
|                 TC = Region.I(x+1, y+1, z+1); | ||||
|                 TR = Region.I(x,   y+1, z+1); | ||||
|                 TR = Region.I(x+1, y,   z+1); | ||||
| 
 | ||||
|                 // check: left, "down", below
 | ||||
|                 CL = Region.I(x-1, y,   z); | ||||
|                 CD = Region.I(x,   y-1, z); | ||||
|                 CL = Region.I(x-1, y,   z  ); | ||||
|                 CD = Region.I(x,   y-1, z  ); | ||||
|                 CB = Region.I(x,   y,   z-1); | ||||
| 
 | ||||
|                 if(!inVoxels[BU]){ Face(BU, BC, TC, TU); } | ||||
| @ -131,6 +133,6 @@ export const Region = | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         return {vertices, voxPointVert, triPointVert, vertPointNeighbors}; | ||||
|         return {vert:new Float32Array(vertices.flat()), voxPointVert, triPointVert, vertPointNeighbors}; | ||||
|     } | ||||
| }; | ||||
|  | ||||
							
								
								
									
										5
									
								
								scene.js
									
									
									
									
									
								
							
							
						
						
									
										5
									
								
								scene.js
									
									
									
									
									
								
							| @ -6,7 +6,7 @@ export function Scene(inSettings) | ||||
| { | ||||
|     const renderer = new T.WebGLRenderer({canvas:document.querySelector(inSettings.DOM)}); | ||||
|     const scene = new T.Scene(); | ||||
|     const camera = new T.PerspectiveCamera(80, 2, 0.1, 10); | ||||
|     const camera = new T.PerspectiveCamera(80, 2, 0.1, 100); | ||||
|     const light = new T.DirectionalLight(0xFFFFFF, 1); | ||||
|     const controls = new OrbitControls(camera, renderer.domElement); | ||||
|     let dirty = false; | ||||
| @ -45,7 +45,8 @@ export function Scene(inSettings) | ||||
|     scene.add(light); | ||||
|     //scene.add(new T.GridHelper(10, 10));
 | ||||
|     light.position.set(-1, 2, 4); | ||||
|     camera.position.set(0, 0, 2); | ||||
|     camera.position.set(0, 5, 5); | ||||
|     camera.lookAt(new T.Vector3(0,0,0)); | ||||
|     controls.update(); | ||||
| 
 | ||||
|     inSettings.Init(scene); | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user