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