webGL相机控制器

Posted 十万伏特の比卡超

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了webGL相机控制器相关的知识,希望对你有一定的参考价值。

需要引入相机控制插件OrbitControls

1     <script type="text/javascript" src="framework/jquery.1.11.1.min.js"></script>
2     <script src="framework/three.js"></script>
3     <script src="framework/OrbitControls.js"></script>

 

直接看代码

 1 <html>
 2 
 3 <head>
 4     <meta charset="UTF-8">
 5     <link rel="stylesheet" type="text/css" href="stylesheets/main.css">
 6     <script type="text/javascript" src="framework/jquery.1.11.1.min.js"></script>
 7     <script src="framework/three.js"></script>
 8     <script src="framework/OrbitControls.js"></script>
 9     <title>three</title>
10     <script>
11         window.onload = function() {
12             // 创建场景元素
13             const scene = new THREE.Scene();
14 
15             // 创建网个模型
16             const geometry = new THREE.BoxGeometry(100, 100, 100); //长宽高 几何对象
17             const material = new THREE.MeshLambertMaterial({
18                 color: 0xff0000
19             }); //颜色 材质对象
20             // 模型
21             const mesh = new THREE.Mesh(geometry, material);
22             scene.add(mesh); // 加入到场景
23 
24             // 添加灯光
25             const Light = new THREE.PointLight(0xffffff); // 点光源
26             Light.position.set(300, 400, 200);
27             scene.add(Light); //添加灯光进去
28 
29             //加入一个环境光
30             scene.add(new THREE.AmbientLight(0x333333));
31 
32             // 添加相机
33             const camera = new THREE.PerspectiveCamera(40, 800 / 600, 1, 1000);
34             camera.position.set(200, 200, 200); //相机位置
35             camera.lookAt(scene.position); //向着场景中心
36 
37             // 创建渲染器
38             const renderer = new THREE.WebGLRenderer();
39             renderer.setSize(800, 600); // 渲染器尺寸
40             document.body.appendChild(renderer.domElement) // 加入文档
41 
42             // 渲染
43             function render() {
44                 renderer.render(scene, camera); //传入场景和相机
45             }
46             render();
47 
48             // 创建相机控制器,需要引入库  传入对象
49             const controls = new THREE.OrbitControls(camera); //传入这个相机,鼠标操作的时候相机控制器会改变相机的参数
50             // 加入事件监听处理
51             controls.addEventListener(‘change‘, render); //改变参数之后同时渲染场景
52 
53         }
54     </script>
55 </head>
56 
57 <body>
58     <div id="app"> </div>
59 </body>
60 
61 
62 </html>

 

 

哦,这其实只是个正方形!

以上是关于webGL相机控制器的主要内容,如果未能解决你的问题,请参考以下文章

具有基本矩阵变换(WebGL)的类FPS相机运动

webGL学习笔记一

WebGL5---三维空间的观察

片段中的 Android 相机预览

WebGL入门3相机参数及光照模型

如何从Android片段中的相机获取图像