Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
车家大少爷
three.js
提交
fedd618a
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,体验更适合开发者的 AI 搜索 >>
提交
fedd618a
编写于
4月 26, 2020
作者:
W
WestLangley
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Unflip PMREM CubeUV tiles
上级
3c0ec00a
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
31 addition
and
26 deletion
+31
-26
examples/jsm/nodes/misc/TextureCubeUVNode.js
examples/jsm/nodes/misc/TextureCubeUVNode.js
+14
-14
src/extras/PMREMGenerator.js
src/extras/PMREMGenerator.js
+10
-6
src/renderers/shaders/ShaderChunk/cube_uv_reflection_fragment.glsl.js
...s/shaders/ShaderChunk/cube_uv_reflection_fragment.glsl.js
+7
-6
未找到文件。
examples/jsm/nodes/misc/TextureCubeUVNode.js
浏览文件 @
fedd618a
...
...
@@ -65,20 +65,20 @@ TextureCubeUVNode.Nodes = ( function () {
var
getUV
=
new
FunctionNode
(
`vec2 getUV(vec3 direction, float face) {
vec2 uv;
if (face == 0.0) {
uv = vec2(-direction.z, direction.y) / abs(direction.x);
} else if (face == 1.0) {
uv = vec2(direction.x, -direction.z) / abs(direction.y);
} else if (face == 2.0) {
uv = direction.xy / abs(direction.z);
} else if (face == 3.0) {
uv = vec2(direction.z, direction.y) / abs(direction.x);
} else if (face == 4.0) {
uv = direction.xz / abs(direction.y);
} else {
uv = vec2(-direction.x, direction.y) / abs(direction.z);
}
return 0.5 * (uv + 1.0);
if (face == 0.0) {
uv = vec2(direction.z, direction.y) / abs(direction.x); // pos x
} else if (face == 1.0) {
uv = vec2(-direction.x, -direction.z) / abs(direction.y); // pos y
} else if (face == 2.0) {
uv = vec2(-direction.x, direction.y) / abs(direction.z); // pos z
} else if (face == 3.0) {
uv = vec2(-direction.z, direction.y) / abs(direction.x); // neg x
} else if (face == 4.0) {
uv = vec2(-direction.x, direction.z) / abs(direction.y); // neg y
} else {
uv = vec2(direction.x, direction.y) / abs(direction.z); // neg z
}
return 0.5 * (uv + 1.0);
}`
);
getUV
.
useKeywords
=
false
;
...
...
src/extras/PMREMGenerator.js
浏览文件 @
fedd618a
...
...
@@ -794,26 +794,30 @@ attribute vec3 position;
attribute vec2 uv;
attribute float faceIndex;
varying vec3 vOutputDirection;
// RH coordinate system; PMREM face-indexing convention
vec3 getDirection(vec2 uv, float face) {
uv = 2.0 * uv - 1.0;
vec3 direction = vec3(uv, 1.0);
if (face == 0.0) {
direction = direction.zyx;
direction.z *= -1.0;
direction = direction.zyx; // ( 1, v, u ) pos x
} else if (face == 1.0) {
direction = direction.xzy;
direction.z *= -1.0;
direction.xz *= -1.0; // ( -u, 1, -v ) pos y
} else if (face == 2.0) {
direction.x *= -1.0; // ( -u, v, 1 ) pos z
} else if (face == 3.0) {
direction = direction.zyx;
direction.x
*= -1.0;
direction.x
z *= -1.0; // ( -1, v, -u ) neg x
} else if (face == 4.0) {
direction = direction.xzy;
direction.
y *= -1.0;
direction.
xy *= -1.0; // ( -u, -1, v ) neg y
} else if (face == 5.0) {
direction.
xz *= -1.0;
direction.
z *= -1.0; // ( u, v, -1 ) neg z
}
return direction;
}
void main() {
vOutputDirection = getDirection(uv, faceIndex);
gl_Position = vec4( position, 1.0 );
...
...
src/renderers/shaders/ShaderChunk/cube_uv_reflection_fragment.glsl.js
浏览文件 @
fedd618a
...
...
@@ -27,20 +27,21 @@ float getFace(vec3 direction) {
return face;
}
// RH coordinate system; PMREM face-indexing convention
vec2 getUV(vec3 direction, float face) {
vec2 uv;
if (face == 0.0) {
uv = vec2(
-direction.z, direction.y) / abs(direction.x);
uv = vec2(
direction.z, direction.y) / abs(direction.x); // pos x
} else if (face == 1.0) {
uv = vec2(
direction.x, -direction.z) / abs(direction.y);
uv = vec2(
-direction.x, -direction.z) / abs(direction.y); // pos y
} else if (face == 2.0) {
uv =
direction.xy / abs(direction.z);
uv =
vec2(-direction.x, direction.y) / abs(direction.z); // pos z
} else if (face == 3.0) {
uv = vec2(
direction.z, direction.y) / abs(direction.x);
uv = vec2(
-direction.z, direction.y) / abs(direction.x); // neg x
} else if (face == 4.0) {
uv =
direction.xz / abs(direction.y);
uv =
vec2(-direction.x, direction.z) / abs(direction.y); // neg y
} else {
uv = vec2(
-direction.x, direction.y) / abs(direction.z);
uv = vec2(
direction.x, direction.y) / abs(direction.z); // neg z
}
return 0.5 * (uv + 1.0);
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录