Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Ablesons
three.js
提交
137f0f6b
T
three.js
项目概览
Ablesons
/
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,发现更多精彩内容 >>
未验证
提交
137f0f6b
编写于
9月 28, 2019
作者:
M
Mr.doob
提交者:
GitHub
9月 28, 2019
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #17599 from mrdoob/multiview
WebGLProgram: Refactored multiview code.
上级
af8e2310
e3da9b42
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
60 addition
and
42 deletion
+60
-42
src/renderers/webgl/WebGLProgram.js
src/renderers/webgl/WebGLProgram.js
+60
-42
未找到文件。
src/renderers/webgl/WebGLProgram.js
浏览文件 @
137f0f6b
...
...
@@ -489,29 +489,14 @@ function WebGLProgram( renderer, extensions, code, material, shader, parameters
parameters
.
logarithmicDepthBuffer
?
'
#define USE_LOGDEPTHBUF
'
:
''
,
parameters
.
logarithmicDepthBuffer
&&
(
parameters
.
isWebGL2
||
extensions
.
get
(
'
EXT_frag_depth
'
)
)
?
'
#define USE_LOGDEPTHBUF_EXT
'
:
''
,
'
uniform mat4 modelMatrix;
'
,
'
uniform mat4 modelViewMatrix;
'
,
'
uniform mat4 projectionMatrix;
'
,
'
uniform mat4 viewMatrix;
'
,
'
uniform mat3 normalMatrix;
'
,
'
uniform vec3 cameraPosition;
'
,
numMultiviewViews
>
0
?
[
'
uniform mat4 modelViewMatrices[
'
+
numMultiviewViews
+
'
];
'
,
'
uniform mat3 normalMatrices[
'
+
numMultiviewViews
+
'
];
'
,
'
uniform mat4 viewMatrices[
'
+
numMultiviewViews
+
'
];
'
,
'
uniform mat4 projectionMatrices[
'
+
numMultiviewViews
+
'
];
'
,
'
#define modelViewMatrix modelViewMatrices[VIEW_ID]
'
,
'
#define normalMatrix normalMatrices[VIEW_ID]
'
,
'
#define viewMatrix viewMatrices[VIEW_ID]
'
,
'
#define projectionMatrix projectionMatrices[VIEW_ID]
'
].
join
(
'
\n
'
)
:
[
'
uniform mat4 modelViewMatrix;
'
,
'
uniform mat4 projectionMatrix;
'
,
'
uniform mat4 viewMatrix;
'
,
'
uniform mat3 normalMatrix;
'
,
].
join
(
'
\n
'
),
'
#ifdef USE_INSTANCING
'
,
'
attribute mat4 instanceMatrix;
'
,
...
...
@@ -631,15 +616,9 @@ function WebGLProgram( renderer, extensions, code, material, shader, parameters
(
(
material
.
extensions
?
material
.
extensions
.
shaderTextureLOD
:
false
)
||
parameters
.
envMap
)
&&
(
parameters
.
isWebGL2
||
extensions
.
get
(
'
EXT_shader_texture_lod
'
)
)
?
'
#define TEXTURE_LOD_EXT
'
:
''
,
'
uniform mat4 viewMatrix;
'
,
'
uniform vec3 cameraPosition;
'
,
numMultiviewViews
>
0
?
[
'
uniform mat4 viewMatrices[
'
+
numMultiviewViews
+
'
];
'
,
'
#define viewMatrix viewMatrices[VIEW_ID]
'
].
join
(
'
\n
'
)
:
'
uniform mat4 viewMatrix;
'
,
(
parameters
.
toneMapping
!==
NoToneMapping
)
?
'
#define TONE_MAPPING
'
:
''
,
(
parameters
.
toneMapping
!==
NoToneMapping
)
?
ShaderChunk
[
'
tonemapping_pars_fragment
'
]
:
''
,
// this code is required here because it is used by the toneMapping() function defined below
(
parameters
.
toneMapping
!==
NoToneMapping
)
?
getToneMappingFunction
(
'
toneMapping
'
,
parameters
.
toneMapping
)
:
''
,
...
...
@@ -691,17 +670,9 @@ function WebGLProgram( renderer, extensions, code, material, shader, parameters
}
// GLSL 3.0 conversion
prefixVertex
=
[
'
#version 300 es
\n
'
,
numMultiviewViews
>
0
?
[
'
#extension GL_OVR_multiview2 : require
'
,
'
layout(num_views =
'
+
numMultiviewViews
+
'
) in;
'
,
'
#define VIEW_ID gl_ViewID_OVR
'
].
join
(
'
\n
'
)
:
''
,
'
#define attribute in
'
,
'
#define varying out
'
,
'
#define texture2D texture
'
...
...
@@ -709,12 +680,6 @@ function WebGLProgram( renderer, extensions, code, material, shader, parameters
prefixFragment
=
[
'
#version 300 es
\n
'
,
numMultiviewViews
>
0
?
[
'
#extension GL_OVR_multiview2 : require
'
,
'
#define VIEW_ID gl_ViewID_OVR
'
].
join
(
'
\n
'
)
:
''
,
'
#define varying in
'
,
isGLSL3ShaderMaterial
?
''
:
'
out highp vec4 pc_fragColor;
'
,
isGLSL3ShaderMaterial
?
''
:
'
#define gl_FragColor pc_fragColor
'
,
...
...
@@ -730,6 +695,59 @@ function WebGLProgram( renderer, extensions, code, material, shader, parameters
'
#define textureCubeGradEXT textureGrad
'
].
join
(
'
\n
'
)
+
'
\n
'
+
prefixFragment
;
// Multiview
if
(
numMultiviewViews
>
0
)
{
prefixVertex
=
prefixVertex
.
replace
(
'
#version 300 es
\n
'
,
[
'
#version 300 es
\n
'
,
'
#extension GL_OVR_multiview2 : require
'
,
'
layout(num_views =
'
+
numMultiviewViews
+
'
) in;
'
,
'
#define VIEW_ID gl_ViewID_OVR
'
].
join
(
'
\n
'
)
);
prefixVertex
=
prefixVertex
.
replace
(
[
'
uniform mat4 modelViewMatrix;
'
,
'
uniform mat4 projectionMatrix;
'
,
'
uniform mat4 viewMatrix;
'
,
'
uniform mat3 normalMatrix;
'
].
join
(
'
\n
'
),
[
'
uniform mat4 modelViewMatrices[
'
+
numMultiviewViews
+
'
];
'
,
'
uniform mat3 normalMatrices[
'
+
numMultiviewViews
+
'
];
'
,
'
uniform mat4 viewMatrices[
'
+
numMultiviewViews
+
'
];
'
,
'
uniform mat4 projectionMatrices[
'
+
numMultiviewViews
+
'
];
'
,
'
#define modelViewMatrix modelViewMatrices[VIEW_ID]
'
,
'
#define normalMatrix normalMatrices[VIEW_ID]
'
,
'
#define viewMatrix viewMatrices[VIEW_ID]
'
,
'
#define projectionMatrix projectionMatrices[VIEW_ID]
'
].
join
(
'
\n
'
)
);
prefixFragment
=
prefixFragment
.
replace
(
'
#version 300 es
\n
'
,
[
'
#version 300 es
\n
'
,
'
#extension GL_OVR_multiview2 : require
'
,
'
#define VIEW_ID gl_ViewID_OVR
'
].
join
(
'
\n
'
)
);
prefixFragment
=
prefixFragment
.
replace
(
'
uniform mat4 viewMatrix;
'
,
[
'
uniform mat4 viewMatrices[
'
+
numMultiviewViews
+
'
];
'
,
'
#define viewMatrix viewMatrices[VIEW_ID]
'
].
join
(
'
\n
'
)
);
}
}
var
vertexGlsl
=
prefixVertex
+
vertexShader
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录