Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
车家大少爷
three.js
提交
9bec0fa7
T
three.js
项目概览
车家大少爷
/
three.js
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
three.js
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
9bec0fa7
编写于
6月 29, 2021
作者:
M
Mr.doob
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Updated builds
上级
0938236d
变更
3
展开全部
隐藏空白更改
内联
并排
Showing
3 changed file
with
180 addition
and
27 deletion
+180
-27
build/three.js
build/three.js
+75
-13
build/three.min.js
build/three.min.js
+1
-1
build/three.module.js
build/three.module.js
+104
-13
未找到文件。
build/three.js
浏览文件 @
9bec0fa7
...
@@ -16421,6 +16421,9 @@
...
@@ -16421,6 +16421,9 @@
let referenceSpace = null;
let referenceSpace = null;
let referenceSpaceType = 'local-floor';
let referenceSpaceType = 'local-floor';
let pose = null;
let pose = null;
let glBinding = null;
let glFramebuffer = null;
let glProjLayer = null;
const controllers = [];
const controllers = [];
const inputSourcesMap = new Map(); //
const inputSourcesMap = new Map(); //
...
@@ -16546,18 +16549,40 @@
...
@@ -16546,18 +16549,40 @@
await gl.makeXRCompatible();
await gl.makeXRCompatible();
}
}
const layerInit = {
if (session.renderState.layers === undefined) {
antialias: attributes.antialias,
const layerInit = {
alpha: attributes.alpha,
antialias: attributes.antialias,
depth: attributes.depth,
alpha: attributes.alpha,
stencil: attributes.stencil,
depth: attributes.depth,
framebufferScaleFactor: framebufferScaleFactor
stencil: attributes.stencil,
}; // eslint-disable-next-line no-undef
framebufferScaleFactor: framebufferScaleFactor
}; // eslint-disable-next-line no-undef
const baseLayer = new XRWebGLLayer(session, gl, layerInit);
session.updateRenderState({
baseLayer: baseLayer
});
} else {
let depthFormat = 0;
if (attributes.depth) {
depthFormat = attributes.stencil ? gl.DEPTH_STENCIL : gl.DEPTH_COMPONENT;
}
const projectionlayerInit = {
colorFormat: attributes.alpha ? gl.RGBA : gl.RGB,
depthFormat: depthFormat,
scaleFactor: framebufferScaleFactor
}; // eslint-disable-next-line no-undef
glBinding = new XRWebGLBinding(session, gl);
glProjLayer = glBinding.createProjectionLayer(projectionlayerInit);
glFramebuffer = gl.createFramebuffer();
session.updateRenderState({
layers: [glProjLayer]
});
}
const baseLayer = new XRWebGLLayer(session, gl, layerInit);
session.updateRenderState({
baseLayer: baseLayer
});
referenceSpace = await session.requestReferenceSpace(referenceSpaceType);
referenceSpace = await session.requestReferenceSpace(referenceSpaceType);
animation.setContext(session);
animation.setContext(session);
animation.start();
animation.start();
...
@@ -16720,7 +16745,11 @@
...
@@ -16720,7 +16745,11 @@
if (pose !== null) {
if (pose !== null) {
const views = pose.views;
const views = pose.views;
const baseLayer = session.renderState.baseLayer;
const baseLayer = session.renderState.baseLayer;
state.bindXRFramebuffer(baseLayer.framebuffer);
if (session.renderState.layers === undefined) {
state.bindXRFramebuffer(baseLayer.framebuffer);
}
let cameraVRNeedsUpdate = false; // check if it's necessary to rebuild cameraVR's camera list
let cameraVRNeedsUpdate = false; // check if it's necessary to rebuild cameraVR's camera list
if (views.length !== cameraVR.cameras.length) {
if (views.length !== cameraVR.cameras.length) {
...
@@ -16730,7 +16759,24 @@
...
@@ -16730,7 +16759,24 @@
for (let i = 0; i < views.length; i++) {
for (let i = 0; i < views.length; i++) {
const view = views[i];
const view = views[i];
const viewport = baseLayer.getViewport(view);
let viewport = null;
if (session.renderState.layers === undefined) {
viewport = baseLayer.getViewport(view);
} else {
const glSubImage = glBinding.getViewSubImage(glProjLayer, view);
gl.bindFramebuffer(gl.FRAMEBUFFER, glFramebuffer);
gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, glSubImage.colorTexture, 0);
if (glSubImage.depthStencilTexture !== undefined) {
gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.DEPTH_ATTACHMENT, gl.TEXTURE_2D, glSubImage.depthStencilTexture, 0);
}
gl.bindFramebuffer(gl.FRAMEBUFFER, null);
state.bindXRFramebuffer(glFramebuffer);
viewport = glSubImage.viewport;
}
const camera = cameras[i];
const camera = cameras[i];
camera.matrix.fromArray(view.transform.matrix);
camera.matrix.fromArray(view.transform.matrix);
camera.projectionMatrix.fromArray(view.projectionMatrix);
camera.projectionMatrix.fromArray(view.projectionMatrix);
...
@@ -33544,6 +33590,22 @@
...
@@ -33544,6 +33590,22 @@
this.type = 'AxesHelper';
this.type = 'AxesHelper';
}
}
setColors(xAxisColor, yAxisColor, zAxisColor) {
const color = new Color();
const array = this.geometry.attributes.color.array;
color.set(xAxisColor);
color.toArray(array, 0);
color.toArray(array, 3);
color.set(yAxisColor);
color.toArray(array, 6);
color.toArray(array, 9);
color.set(zAxisColor);
color.toArray(array, 12);
color.toArray(array, 15);
this.geometry.attributes.color.needsUpdate = true;
return this;
}
dispose() {
dispose() {
this.geometry.dispose();
this.geometry.dispose();
this.material.dispose();
this.material.dispose();
build/three.min.js
浏览文件 @
9bec0fa7
此差异已折叠。
点击以展开。
build/three.module.js
浏览文件 @
9bec0fa7
...
@@ -22187,13 +22187,15 @@ class WebXRManager extends EventDispatcher {
...
@@ -22187,13 +22187,15 @@ class WebXRManager extends EventDispatcher {
const state = renderer.state;
const state = renderer.state;
let session = null;
let session = null;
let framebufferScaleFactor = 1.0;
let framebufferScaleFactor = 1.0;
let referenceSpace = null;
let referenceSpace = null;
let referenceSpaceType = 'local-floor';
let referenceSpaceType = 'local-floor';
let pose = null;
let pose = null;
let glBinding = null;
let glFramebuffer = null;
let glProjLayer = null;
const controllers = [];
const controllers = [];
const inputSourcesMap = new Map();
const inputSourcesMap = new Map();
...
@@ -22370,18 +22372,47 @@ class WebXRManager extends EventDispatcher {
...
@@ -22370,18 +22372,47 @@ class WebXRManager extends EventDispatcher {
}
}
const layerInit = {
if ( session.renderState.layers === undefined ) {
antialias: attributes.antialias,
alpha: attributes.alpha,
const layerInit = {
depth: attributes.depth,
antialias: attributes.antialias,
stencil: attributes.stencil,
alpha: attributes.alpha,
framebufferScaleFactor: framebufferScaleFactor
depth: attributes.depth,
};
stencil: attributes.stencil,
framebufferScaleFactor: framebufferScaleFactor
};
// eslint-disable-next-line no-undef
const baseLayer = new XRWebGLLayer( session, gl, layerInit );
session.updateRenderState( { baseLayer: baseLayer } );
} else {
let depthFormat = 0;
if ( attributes.depth ) {
depthFormat = attributes.stencil ? 34041 : 6402;
}
const projectionlayerInit = {
colorFormat: attributes.alpha ? 6408 : 6407,
depthFormat: depthFormat,
scaleFactor: framebufferScaleFactor
};
// eslint-disable-next-line no-undef
glBinding = new XRWebGLBinding( session, gl );
// eslint-disable-next-line no-undef
glProjLayer = glBinding.createProjectionLayer( projectionlayerInit );
const baseLayer = new XRWebGLLayer( session, gl, layerInit );
session.updateRenderState( { baseLayer: baseLayer } );
glFramebuffer = gl.createFramebuffer();
session.updateRenderState( { layers: [ glProjLayer ] } );
}
referenceSpace = await session.requestReferenceSpace( referenceSpaceType );
referenceSpace = await session.requestReferenceSpace( referenceSpaceType );
...
@@ -22600,9 +22631,14 @@ class WebXRManager extends EventDispatcher {
...
@@ -22600,9 +22631,14 @@ class WebXRManager extends EventDispatcher {
if ( pose !== null ) {
if ( pose !== null ) {
const views = pose.views;
const views = pose.views;
const baseLayer = session.renderState.baseLayer;
const baseLayer = session.renderState.baseLayer;
state.bindXRFramebuffer( baseLayer.framebuffer );
if ( session.renderState.layers === undefined ) {
state.bindXRFramebuffer( baseLayer.framebuffer );
}
let cameraVRNeedsUpdate = false;
let cameraVRNeedsUpdate = false;
...
@@ -22611,18 +22647,50 @@ class WebXRManager extends EventDispatcher {
...
@@ -22611,18 +22647,50 @@ class WebXRManager extends EventDispatcher {
if ( views.length !== cameraVR.cameras.length ) {
if ( views.length !== cameraVR.cameras.length ) {
cameraVR.cameras.length = 0;
cameraVR.cameras.length = 0;
cameraVRNeedsUpdate = true;
cameraVRNeedsUpdate = true;
}
}
for ( let i = 0; i < views.length; i ++ ) {
for ( let i = 0; i < views.length; i ++ ) {
const view = views[ i ];
const view = views[ i ];
const viewport = baseLayer.getViewport( view );
let viewport = null;
if ( session.renderState.layers === undefined ) {
viewport = baseLayer.getViewport( view );
} else {
const glSubImage = glBinding.getViewSubImage( glProjLayer, view );
gl.bindFramebuffer( 36160, glFramebuffer );
gl.framebufferTexture2D( 36160, 36064, 3553, glSubImage.colorTexture, 0 );
if ( glSubImage.depthStencilTexture !== undefined ) {
gl.framebufferTexture2D( 36160, 36096, 3553, glSubImage.depthStencilTexture, 0 );
}
gl.bindFramebuffer( 36160, null );
state.bindXRFramebuffer( glFramebuffer );
viewport = glSubImage.viewport;
}
const camera = cameras[ i ];
const camera = cameras[ i ];
camera.matrix.fromArray( view.transform.matrix );
camera.matrix.fromArray( view.transform.matrix );
camera.projectionMatrix.fromArray( view.projectionMatrix );
camera.projectionMatrix.fromArray( view.projectionMatrix );
camera.viewport.set( viewport.x, viewport.y, viewport.width, viewport.height );
camera.viewport.set( viewport.x, viewport.y, viewport.width, viewport.height );
if ( i === 0 ) {
if ( i === 0 ) {
...
@@ -46491,6 +46559,29 @@ class AxesHelper extends LineSegments {
...
@@ -46491,6 +46559,29 @@ class AxesHelper extends LineSegments {
}
}
setColors( xAxisColor, yAxisColor, zAxisColor ) {
const color = new Color();
const array = this.geometry.attributes.color.array;
color.set( xAxisColor );
color.toArray( array, 0 );
color.toArray( array, 3 );
color.set( yAxisColor );
color.toArray( array, 6 );
color.toArray( array, 9 );
color.set( zAxisColor );
color.toArray( array, 12 );
color.toArray( array, 15 );
this.geometry.attributes.color.needsUpdate = true;
return this;
}
dispose() {
dispose() {
this.geometry.dispose();
this.geometry.dispose();
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录