未验证 提交 12e3f107 编写于 作者: M Michael Herzog 提交者: GitHub

Merge pull request #17986 from Mugen87/dev39

InstancedMesh: Clean up.
<!DOCTYPE html>
<html lang="en">
<head>
<title>three.js webgl - instancing - raycast </title>
<title>three.js webgl - instancing - raycast</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
<link type="text/css" rel="stylesheet" href="main.css">
......@@ -12,8 +12,8 @@
import * as THREE from '../build/three.module.js';
import Stats from './jsm/libs/stats.module.js';
import {GUI} from './jsm/libs/dat.gui.module.js';
import {OrbitControls} from "./jsm/controls/OrbitControls.js";
import { GUI } from './jsm/libs/dat.gui.module.js';
import { OrbitControls } from "./jsm/controls/OrbitControls.js";
var camera, scene, renderer, stats;
......@@ -26,8 +26,6 @@
var raycaster = new THREE.Raycaster();
var mouse = new THREE.Vector2( 1, 1 );
var orbitControls;
var rotationTheta = 0.1;
var rotationMatrix = new THREE.Matrix4().makeRotationY( rotationTheta );
var instanceMatrix = new THREE.Matrix4();
......@@ -42,11 +40,9 @@
camera.position.set( amount, amount, amount );
camera.lookAt( 0, 0, 0 );
scene = new THREE.Scene();
geometry = new THREE.TorusKnotBufferGeometry( 0.5, 0.2, 16, 4, 2, 3 );
geometry.scale( 0.5, 0.5, 0.5 );
var material = new THREE.MeshNormalMaterial( { flatShading: true } );
......@@ -76,6 +72,7 @@
scene.add( mesh );
//
var gui = new GUI();
gui.add( mesh, 'count', 0, count );
......@@ -83,10 +80,9 @@
renderer = new THREE.WebGLRenderer( { antialias: true } );
renderer.setPixelRatio( window.devicePixelRatio );
renderer.setSize( window.innerWidth, window.innerHeight );
document.body.appendChild( renderer.domElement );
orbitControls = new OrbitControls( camera, renderer.domElement );
var orbitControls = new OrbitControls( camera, renderer.domElement );
stats = new Stats();
document.body.appendChild( stats.dom );
......@@ -122,7 +118,6 @@
}
function render() {
raycaster.setFromCamera( mouse, camera );
......@@ -145,8 +140,6 @@
}
</script>
</body>
......
......@@ -46,21 +46,19 @@ InstancedMesh.prototype = Object.assign( Object.create( Mesh.prototype ), {
for ( var instanceId = 0; instanceId < raycastTimes; instanceId ++ ) {
//Calculate the world matrix for each instance
// calculate the world matrix for each instance
this.getMatrixAt( instanceId, _instanceLocalMatrix );
_instanceWorldMatrix.multiplyMatrices( matrixWorld, _instanceLocalMatrix );
//The mesh represents this single instance
// the mesh represents this single instance
_mesh.matrixWorld = _instanceWorldMatrix;
_mesh.raycast( raycaster, _instanceIntersects );
//Process the result of raycast
// process the result of raycast
if ( _instanceIntersects.length > 0 ) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册