Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
fktz008
three.js
提交
a1382c66
T
three.js
项目概览
fktz008
/
three.js
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
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,发现更多精彩内容 >>
未验证
提交
a1382c66
编写于
2月 22, 2022
作者:
E
Emmett Lalish
提交者:
GitHub
2月 22, 2022
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
disable anisotropy with textureGrad (#23556)
上级
99b13fe3
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
19 addition
and
29 deletion
+19
-29
src/extras/PMREMGenerator.js
src/extras/PMREMGenerator.js
+7
-26
src/renderers/shaders/ShaderChunk/cube_uv_reflection_fragment.glsl.js
...s/shaders/ShaderChunk/cube_uv_reflection_fragment.glsl.js
+9
-1
src/renderers/webgl/WebGLProgram.js
src/renderers/webgl/WebGLProgram.js
+3
-2
未找到文件。
src/extras/PMREMGenerator.js
浏览文件 @
a1382c66
...
...
@@ -409,12 +409,6 @@ class PMREMGenerator {
uniforms
[
'
envMap
'
].
value
=
texture
;
if
(
!
isCubeTexture
)
{
uniforms
[
'
texelSize
'
].
value
.
set
(
1.0
/
texture
.
image
.
width
,
1.0
/
texture
.
image
.
height
);
}
const
size
=
this
.
_cubeSize
;
_setViewport
(
cubeUVRenderTarget
,
0
,
0
,
3
*
size
,
2
*
size
);
...
...
@@ -672,6 +666,10 @@ function _getBlurShader( lodMax, width, height ) {
name
:
'
SphericalGaussianBlur
'
,
extensions
:
{
shaderTextureLOD
:
true
},
defines
:
{
'
n
'
:
MAX_SAMPLES
,
'
CUBEUV_TEXEL_WIDTH
'
:
1.0
/
width
,
...
...
@@ -765,14 +763,12 @@ function _getBlurShader( lodMax, width, height ) {
function
_getEquirectShader
()
{
const
texelSize
=
new
Vector2
(
1
,
1
);
const
shaderMaterial
=
new
RawShaderMaterial
(
{
name
:
'
EquirectangularToCubeUV
'
,
uniforms
:
{
'
envMap
'
:
{
value
:
null
},
'
texelSize
'
:
{
value
:
texelSize
}
'
envMap
'
:
{
value
:
null
}
},
vertexShader
:
_getCommonVertexShader
(),
...
...
@@ -785,31 +781,16 @@ function _getEquirectShader() {
varying vec3 vOutputDirection;
uniform sampler2D envMap;
uniform vec2 texelSize;
#include <common>
void main() {
gl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );
vec3 outputDirection = normalize( vOutputDirection );
vec2 uv = equirectUv( outputDirection );
vec2 f = fract( uv / texelSize - 0.5 );
uv -= f * texelSize;
vec3 tl = texture2D ( envMap, uv ).rgb;
uv.x += texelSize.x;
vec3 tr = texture2D ( envMap, uv ).rgb;
uv.y += texelSize.y;
vec3 br = texture2D ( envMap, uv ).rgb;
uv.x -= texelSize.x;
vec3 bl = texture2D ( envMap, uv ).rgb;
vec3 tm = mix( tl, tr, f.x );
vec3 bm = mix( bl, br, f.x );
gl_FragColor.rgb = mix( tm, bm, f.y );
gl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 );
}
`
,
...
...
src/renderers/shaders/ShaderChunk/cube_uv_reflection_fragment.glsl.js
浏览文件 @
a1382c66
...
...
@@ -104,7 +104,15 @@ export default /* glsl */`
uv.x *= CUBEUV_TEXEL_WIDTH;
uv.y *= CUBEUV_TEXEL_HEIGHT;
return texture2D( envMap, uv ).rgb;
#ifdef TEXTURE_LOD_EXT
return texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb; // disable anisotropic filtering
#else
return texture2D( envMap, uv ).rgb;
#endif
}
...
...
src/renderers/webgl/WebGLProgram.js
浏览文件 @
a1382c66
...
...
@@ -423,7 +423,8 @@ function WebGLProgram( renderer, cacheKey, parameters, bindingStates ) {
prefixFragment
=
[
customExtensions
,
customDefines
customDefines
,
parameters
.
rendererExtensionShaderTextureLod
?
'
#define TEXTURE_LOD_EXT
'
:
''
].
filter
(
filterEmptyLine
).
join
(
'
\n
'
);
...
...
@@ -700,7 +701,7 @@ function WebGLProgram( renderer, cacheKey, parameters, bindingStates ) {
vertexShader
=
unrollLoops
(
vertexShader
);
fragmentShader
=
unrollLoops
(
fragmentShader
);
if
(
parameters
.
isWebGL2
&&
parameters
.
isRawShaderMaterial
!==
true
)
{
if
(
parameters
.
isWebGL2
)
{
// GLSL 3.0 conversion for built-in materials and ShaderMaterial
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录