Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
车家大少爷
three.js
提交
aab57da1
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 搜索 >>
未验证
提交
aab57da1
编写于
5月 26, 2020
作者:
M
Mr.doob
提交者:
GitHub
5月 26, 2020
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #19463 from WestLangley/dev_equirectUv
Shaders: add equirectUv() method
上级
a84b7df5
0531b2ce
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
20 addition
and
28 deletion
+20
-28
examples/webgl_materials_envmaps_parallax.html
examples/webgl_materials_envmaps_parallax.html
+1
-3
src/extras/PMREMGenerator.js
src/extras/PMREMGenerator.js
+2
-5
src/renderers/WebGLCubeRenderTarget.js
src/renderers/WebGLCubeRenderTarget.js
+2
-7
src/renderers/shaders/ShaderChunk/common.glsl.js
src/renderers/shaders/ShaderChunk/common.glsl.js
+12
-0
src/renderers/shaders/ShaderChunk/envmap_fragment.glsl.js
src/renderers/shaders/ShaderChunk/envmap_fragment.glsl.js
+1
-5
src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js
...shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js
+1
-3
src/renderers/shaders/ShaderLib/equirect_frag.glsl.js
src/renderers/shaders/ShaderLib/equirect_frag.glsl.js
+1
-5
未找到文件。
examples/webgl_materials_envmaps_parallax.html
浏览文件 @
aab57da1
...
...
@@ -175,9 +175,7 @@
#elif defined( ENVMAP_TYPE_EQUIREC )
vec2 sampleUV;
sampleUV.y = asin( clamp( reflectVec.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;
sampleUV.x = atan( reflectVec.z, reflectVec.x ) * RECIPROCAL_PI2 + 0.5;
vec2 sampleUV = equirectUv( reflectVec );
#ifdef TEXTURE_LOD_EXT
...
...
src/extras/PMREMGenerator.js
浏览文件 @
aab57da1
...
...
@@ -707,15 +707,12 @@ uniform vec2 texelSize;
${
_getEncodings
()}
#define RECIPROCAL_PI 0.31830988618
#define RECIPROCAL_PI2 0.15915494
#include <common>
void main() {
gl_FragColor = vec4(0.0);
vec3 outputDirection = normalize(vOutputDirection);
vec2 uv;
uv.y = asin(clamp(outputDirection.y, -1.0, 1.0)) * RECIPROCAL_PI + 0.5;
uv.x = atan(outputDirection.z, outputDirection.x) * RECIPROCAL_PI2 + 0.5;
vec2 uv = equirectUv( outputDirection );
vec2 f = fract(uv / texelSize - 0.5);
uv -= f * texelSize;
vec3 tl = envMapTexelToLinear(texture2D(envMap, uv)).rgb;
...
...
src/renderers/WebGLCubeRenderTarget.js
浏览文件 @
aab57da1
...
...
@@ -72,18 +72,13 @@ WebGLCubeRenderTarget.prototype.fromEquirectangularTexture = function ( renderer
"
varying vec3 vWorldDirection;
"
,
"
#define RECIPROCAL_PI 0.31830988618
"
,
"
#define RECIPROCAL_PI2 0.15915494
"
,
"
#include <common>
"
,
"
void main() {
"
,
"
vec3 direction = normalize( vWorldDirection );
"
,
"
vec2 sampleUV;
"
,
"
sampleUV.y = asin( clamp( direction.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;
"
,
"
sampleUV.x = atan( direction.z, direction.x ) * RECIPROCAL_PI2 + 0.5;
"
,
"
vec2 sampleUV = equirectUv( direction );
"
,
"
gl_FragColor = texture2D( tEquirect, sampleUV );
"
,
...
...
src/renderers/shaders/ShaderChunk/common.glsl.js
浏览文件 @
aab57da1
...
...
@@ -117,5 +117,17 @@ bool isPerspectiveMatrix( mat4 m ) {
return m[ 2 ][ 3 ] == - 1.0;
}
vec2 equirectUv( in vec3 dir ) {
// dir is assumed to be unit length
float u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;
float v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;
return vec2( u, v );
}
`
;
src/renderers/shaders/ShaderChunk/envmap_fragment.glsl.js
浏览文件 @
aab57da1
...
...
@@ -44,13 +44,9 @@ export default /* glsl */`
#elif defined( ENVMAP_TYPE_EQUIREC )
vec2 sampleUV;
reflectVec = normalize( reflectVec );
sampleUV.y = asin( clamp( reflectVec.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;
sampleUV.x = atan( reflectVec.z, reflectVec.x ) * RECIPROCAL_PI2 + 0.5;
vec2 sampleUV = equirectUv( reflectVec );
vec4 envColor = texture2D( envMap, sampleUV );
...
...
src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js
浏览文件 @
aab57da1
...
...
@@ -97,9 +97,7 @@ export default /* glsl */`
#elif defined( ENVMAP_TYPE_EQUIREC )
vec2 sampleUV;
sampleUV.y = asin( clamp( reflectVec.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;
sampleUV.x = atan( reflectVec.z, reflectVec.x ) * RECIPROCAL_PI2 + 0.5;
vec2 sampleUV = equirectUv( reflectVec );
#ifdef TEXTURE_LOD_EXT
...
...
src/renderers/shaders/ShaderLib/equirect_frag.glsl.js
浏览文件 @
aab57da1
...
...
@@ -9,11 +9,7 @@ void main() {
vec3 direction = normalize( vWorldDirection );
vec2 sampleUV;
sampleUV.y = asin( clamp( direction.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;
sampleUV.x = atan( direction.z, direction.x ) * RECIPROCAL_PI2 + 0.5;
vec2 sampleUV = equirectUv( direction );
vec4 texColor = texture2D( tEquirect, sampleUV );
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录