首页 热点资讯 义务教育 高等教育 出国留学 考研考公

webgl 可以load什么类型

发布网友 发布时间:2022-04-22 04:09

我来回答

1个回答

热心网友 时间:2024-08-15 07:24

在页面中,我们利用WebGL技术来呈现3D模型。
1.首先我们创建一个div,并将其加入到页面中。

1
2

container = document.createElement('div');
document.body.appendChild( container )

2.定义相机。

1
2
3
4

camera =new THREE.PerspectiveCamera( 45, window.innerWidth / window.innerHeight,1,
2000 );
camera.position.z = initalCameraZElem.value;
camera.position.x = initalCameraXElem.value;
camera.position.y = initalCameraYElem.value

3.定义场景。

1

scene = new THREE.Scene()

4.设置环境光,并将其加入场景。

1
2

varambient =
new THREE.AmbientLight( 0x101030);
scene.add( ambient );

5.设置平行光,并将其加入场景。

1
2
3

vardirectionalLight =
new THREE.DirectionalLight( 0xffeedd );
directionalLight.position.set(0,
0, 1 ).normalize();
scene.add( directionalLight );

6.设置材质。

1
2
3
4
5
6
7
8
9
10

vartexture =
new THREE.Texture();

varloader =
new THREE.ImageLoader();
loader.addEventListener('load',
function ( event ) {

texture.image = event.content;
texture.needsUpdate =true;

} );
loader.load('small.jpg' );

7.加载3D模型。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

varloader =
new THREE.OBJLoader();
loader.addEventListener('load',
function ( event ) {

varobject = event.content;
_object = object;
console.log(object);
for(
var i = 0, l = object.children.length; i < l; i ++ ) {

//object.children[ i].material.map = texture;

}
object.position.y = initalYElem.value;
object.position.x = initalXElem.value;
object.position.z = initalZElem.value;
scene.add( object );
});
loader.load( path );//path为模型的路径

8.渲染场景。

1
2
3

renderer =new THREE.WebGLRenderer();
renderer.setSize( window.innerWidth , window.innerHeight);
container.appendChild( renderer.domElement );

模型可以为本地的,也可以为服务器上的。
如果加载的是本地模型,浏览器会报错,原因是浏览器默认不允许加载本地的文件,解决方法是:
以Chrome为例,右击Chrome图标,在目标后面添加如下命令:
--allow-file-access-from-files
即可加载本地的模型文件。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com