Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
车家大少爷
three.js
提交
834e4927
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,发现更多精彩内容 >>
提交
834e4927
编写于
10月 11, 2019
作者:
M
Mugen87
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Examples: Remove EquirectangularToCubeGenerator.
上级
b91aebff
变更
8
显示空白变更内容
内联
并排
Showing
8 changed file
with
25 addition
and
316 deletion
+25
-316
docs/api/en/materials/MeshStandardMaterial.html
docs/api/en/materials/MeshStandardMaterial.html
+3
-3
docs/api/zh/materials/MeshStandardMaterial.html
docs/api/zh/materials/MeshStandardMaterial.html
+1
-1
examples/js/loaders/EquirectangularToCubeGenerator.js
examples/js/loaders/EquirectangularToCubeGenerator.js
+0
-126
examples/jsm/loaders/EquirectangularToCubeGenerator.d.ts
examples/jsm/loaders/EquirectangularToCubeGenerator.d.ts
+0
-25
examples/jsm/loaders/EquirectangularToCubeGenerator.js
examples/jsm/loaders/EquirectangularToCubeGenerator.js
+0
-139
examples/webgl_loader_gltf.html
examples/webgl_loader_gltf.html
+7
-6
examples/webgl_loader_gltf_extensions.html
examples/webgl_loader_gltf_extensions.html
+6
-5
examples/webgl_materials_envmaps_exr.html
examples/webgl_materials_envmaps_exr.html
+8
-11
未找到文件。
docs/api/en/materials/MeshStandardMaterial.html
浏览文件 @
834e4927
...
...
@@ -174,8 +174,8 @@
and that mip maps have not been otherwise forcibly disabled.
</p>
<p>
Note: only [link:https://threejs.org/docs/#api/textures/CubeTexture cube environment maps] are supported
for MeshStandardMaterial. If you want to use an equirectangular map you will need to use
the
[
link:https://github.com/mrdoob/three.js/blob/dev/examples/js/loaders/EquirectangularToCubeGenerator.js EquirectangularToCubeGenerator].
for MeshStandardMaterial. If you want to use an equirectangular map you will need to use
[
page:WebGLRenderTargetCube.fromEquirectangularTexture WebGLRenderTargetCube.fromEquirectangularTexture]().
See this [link:https://threejs.org/examples/webgl_materials_envmaps_exr.html example] for details.
</p>
...
...
docs/api/zh/materials/MeshStandardMaterial.html
浏览文件 @
834e4927
...
...
@@ -136,7 +136,7 @@
请确保将minFilter设置为其中一个MipMap选项,并且未强制禁用mip贴图。
</p>
<p>
注意:MeshStandardMaterial 仅支持[link:https://threejs.org/docs/#api/textures/CubeTexture cube environment maps]。
如果要使用equirectangular贴图,则需要使用 [
link:https://github.com/mrdoob/three.js/blob/dev/examples/js/loaders/EquirectangularToCubeGenerator.js EquirectangularToCubeGenerator]
。
如果要使用equirectangular贴图,则需要使用 [
page:WebGLRenderTargetCube.fromEquirectangularTexture WebGLRenderTargetCube.fromEquirectangularTexture]().
。
详细信息请参阅此示例[link:https://threejs.org/examples/webgl_materials_envmaps_exr.html example]。
</p>
...
...
examples/js/loaders/EquirectangularToCubeGenerator.js
已删除
100644 → 0
浏览文件 @
b91aebff
/**
* @author Richard M. / https://github.com/richardmonette
*/
THREE
.
EquirectangularToCubeGenerator
=
(
function
()
{
var
camera
=
new
THREE
.
PerspectiveCamera
(
90
,
1
,
0.1
,
10
);
var
scene
=
new
THREE
.
Scene
();
var
boxMesh
=
new
THREE
.
Mesh
(
new
THREE
.
BoxBufferGeometry
(
1
,
1
,
1
),
getShader
()
);
boxMesh
.
material
.
side
=
THREE
.
BackSide
;
scene
.
add
(
boxMesh
);
var
EquirectangularToCubeGenerator
=
function
(
sourceTexture
,
options
)
{
options
=
options
||
{};
this
.
sourceTexture
=
sourceTexture
;
this
.
resolution
=
options
.
resolution
||
512
;
this
.
views
=
[
{
t
:
[
1
,
0
,
0
],
u
:
[
0
,
-
1
,
0
]
},
{
t
:
[
-
1
,
0
,
0
],
u
:
[
0
,
-
1
,
0
]
},
{
t
:
[
0
,
1
,
0
],
u
:
[
0
,
0
,
1
]
},
{
t
:
[
0
,
-
1
,
0
],
u
:
[
0
,
0
,
-
1
]
},
{
t
:
[
0
,
0
,
1
],
u
:
[
0
,
-
1
,
0
]
},
{
t
:
[
0
,
0
,
-
1
],
u
:
[
0
,
-
1
,
0
]
},
];
var
params
=
{
format
:
options
.
format
||
this
.
sourceTexture
.
format
,
magFilter
:
this
.
sourceTexture
.
magFilter
,
minFilter
:
this
.
sourceTexture
.
minFilter
,
type
:
options
.
type
||
this
.
sourceTexture
.
type
,
generateMipmaps
:
this
.
sourceTexture
.
generateMipmaps
,
anisotropy
:
this
.
sourceTexture
.
anisotropy
,
encoding
:
this
.
sourceTexture
.
encoding
};
this
.
renderTarget
=
new
THREE
.
WebGLRenderTargetCube
(
this
.
resolution
,
this
.
resolution
,
params
);
};
EquirectangularToCubeGenerator
.
prototype
=
{
constructor
:
EquirectangularToCubeGenerator
,
update
:
function
(
renderer
)
{
var
currentRenderTarget
=
renderer
.
getRenderTarget
();
boxMesh
.
material
.
uniforms
.
equirectangularMap
.
value
=
this
.
sourceTexture
;
for
(
var
i
=
0
;
i
<
6
;
i
++
)
{
var
v
=
this
.
views
[
i
];
camera
.
position
.
set
(
0
,
0
,
0
);
camera
.
up
.
set
(
v
.
u
[
0
],
v
.
u
[
1
],
v
.
u
[
2
]
);
camera
.
lookAt
(
v
.
t
[
0
],
v
.
t
[
1
],
v
.
t
[
2
]
);
renderer
.
setRenderTarget
(
this
.
renderTarget
,
i
);
renderer
.
clear
();
renderer
.
render
(
scene
,
camera
);
}
renderer
.
setRenderTarget
(
currentRenderTarget
);
return
this
.
renderTarget
.
texture
;
},
dispose
:
function
()
{
this
.
renderTarget
.
dispose
();
}
};
function
getShader
()
{
var
shaderMaterial
=
new
THREE
.
ShaderMaterial
(
{
uniforms
:
{
"
equirectangularMap
"
:
{
value
:
null
},
},
vertexShader
:
"
varying vec3 localPosition;
\n\
\n\
void main() {
\n\
localPosition = position;
\n\
gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
\n\
}
"
,
fragmentShader
:
"
#include <common>
\n\
varying vec3 localPosition;
\n\
uniform sampler2D equirectangularMap;
\n\
\n\
vec2 EquirectangularSampleUV(vec3 v) {
\n\
vec2 uv = vec2(atan(v.z, v.x), asin(v.y));
\n\
uv *= vec2(0.1591, 0.3183); // inverse atan
\n\
uv += 0.5;
\n\
return uv;
\n\
}
\n\
\n\
void main() {
\n\
vec2 uv = EquirectangularSampleUV(normalize(localPosition));
\n\
gl_FragColor = texture2D(equirectangularMap, uv);
\n\
}
"
,
blending
:
THREE
.
NoBlending
}
);
shaderMaterial
.
type
=
'
EquirectangularToCubeGenerator
'
;
return
shaderMaterial
;
}
return
EquirectangularToCubeGenerator
;
}
)();
examples/jsm/loaders/EquirectangularToCubeGenerator.d.ts
已删除
100644 → 0
浏览文件 @
b91aebff
import
{
PixelFormat
,
Texture
,
TextureDataType
,
WebGLRenderer
,
WebGLRenderTargetCube
}
from
'
../../../src/Three
'
;
export
interface
EquirectangularToCubeGeneratorOptions
{
resolution
?:
number
;
format
?:
PixelFormat
;
type
?:
TextureDataType
;
}
export
class
EquirectangularToCubeGenerator
{
constructor
(
sourceTexture
:
Texture
,
options
?:
EquirectangularToCubeGeneratorOptions
);
sourceTexture
:
Texture
;
resolution
:
number
;
renderTarget
:
WebGLRenderTargetCube
;
dispose
():
void
;
update
(
renderer
:
WebGLRenderer
):
Texture
;
}
examples/jsm/loaders/EquirectangularToCubeGenerator.js
已删除
100644 → 0
浏览文件 @
b91aebff
/**
* @author Richard M. / https://github.com/richardmonette
*/
import
{
BackSide
,
BoxBufferGeometry
,
Mesh
,
NoBlending
,
PerspectiveCamera
,
Scene
,
ShaderMaterial
,
WebGLRenderTargetCube
}
from
"
../../../build/three.module.js
"
;
var
EquirectangularToCubeGenerator
=
(
function
()
{
var
camera
=
new
PerspectiveCamera
(
90
,
1
,
0.1
,
10
);
var
scene
=
new
Scene
();
var
boxMesh
=
new
Mesh
(
new
BoxBufferGeometry
(
1
,
1
,
1
),
getShader
()
);
boxMesh
.
material
.
side
=
BackSide
;
scene
.
add
(
boxMesh
);
var
EquirectangularToCubeGenerator
=
function
(
sourceTexture
,
options
)
{
options
=
options
||
{};
this
.
sourceTexture
=
sourceTexture
;
this
.
resolution
=
options
.
resolution
||
512
;
this
.
views
=
[
{
t
:
[
1
,
0
,
0
],
u
:
[
0
,
-
1
,
0
]
},
{
t
:
[
-
1
,
0
,
0
],
u
:
[
0
,
-
1
,
0
]
},
{
t
:
[
0
,
1
,
0
],
u
:
[
0
,
0
,
1
]
},
{
t
:
[
0
,
-
1
,
0
],
u
:
[
0
,
0
,
-
1
]
},
{
t
:
[
0
,
0
,
1
],
u
:
[
0
,
-
1
,
0
]
},
{
t
:
[
0
,
0
,
-
1
],
u
:
[
0
,
-
1
,
0
]
},
];
var
params
=
{
format
:
options
.
format
||
this
.
sourceTexture
.
format
,
magFilter
:
this
.
sourceTexture
.
magFilter
,
minFilter
:
this
.
sourceTexture
.
minFilter
,
type
:
options
.
type
||
this
.
sourceTexture
.
type
,
generateMipmaps
:
this
.
sourceTexture
.
generateMipmaps
,
anisotropy
:
this
.
sourceTexture
.
anisotropy
,
encoding
:
this
.
sourceTexture
.
encoding
};
this
.
renderTarget
=
new
WebGLRenderTargetCube
(
this
.
resolution
,
this
.
resolution
,
params
);
};
EquirectangularToCubeGenerator
.
prototype
=
{
constructor
:
EquirectangularToCubeGenerator
,
update
:
function
(
renderer
)
{
var
currentRenderTarget
=
renderer
.
getRenderTarget
();
boxMesh
.
material
.
uniforms
.
equirectangularMap
.
value
=
this
.
sourceTexture
;
for
(
var
i
=
0
;
i
<
6
;
i
++
)
{
var
v
=
this
.
views
[
i
];
camera
.
position
.
set
(
0
,
0
,
0
);
camera
.
up
.
set
(
v
.
u
[
0
],
v
.
u
[
1
],
v
.
u
[
2
]
);
camera
.
lookAt
(
v
.
t
[
0
],
v
.
t
[
1
],
v
.
t
[
2
]
);
renderer
.
setRenderTarget
(
this
.
renderTarget
,
i
);
renderer
.
clear
();
renderer
.
render
(
scene
,
camera
);
}
renderer
.
setRenderTarget
(
currentRenderTarget
);
return
this
.
renderTarget
.
texture
;
},
dispose
:
function
()
{
this
.
renderTarget
.
dispose
();
}
};
function
getShader
()
{
var
shaderMaterial
=
new
ShaderMaterial
(
{
uniforms
:
{
"
equirectangularMap
"
:
{
value
:
null
},
},
vertexShader
:
"
varying vec3 localPosition;
\n\
\n\
void main() {
\n\
localPosition = position;
\n\
gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
\n\
}
"
,
fragmentShader
:
"
#include <common>
\n\
varying vec3 localPosition;
\n\
uniform sampler2D equirectangularMap;
\n\
\n\
vec2 EquirectangularSampleUV(vec3 v) {
\n\
vec2 uv = vec2(atan(v.z, v.x), asin(v.y));
\n\
uv *= vec2(0.1591, 0.3183); // inverse atan
\n\
uv += 0.5;
\n\
return uv;
\n\
}
\n\
\n\
void main() {
\n\
vec2 uv = EquirectangularSampleUV(normalize(localPosition));
\n\
gl_FragColor = texture2D(equirectangularMap, uv);
\n\
}
"
,
blending
:
NoBlending
}
);
shaderMaterial
.
type
=
'
EquirectangularToCubeGenerator
'
;
return
shaderMaterial
;
}
return
EquirectangularToCubeGenerator
;
}
)();
export
{
EquirectangularToCubeGenerator
};
examples/webgl_loader_gltf.html
浏览文件 @
834e4927
...
...
@@ -24,7 +24,6 @@
import
{
OrbitControls
}
from
'
./jsm/controls/OrbitControls.js
'
;
import
{
GLTFLoader
}
from
'
./jsm/loaders/GLTFLoader.js
'
;
import
{
RGBELoader
}
from
'
./jsm/loaders/RGBELoader.js
'
;
import
{
EquirectangularToCubeGenerator
}
from
'
./jsm/loaders/EquirectangularToCubeGenerator.js
'
;
import
{
PMREMGenerator
}
from
'
./jsm/pmrem/PMREMGenerator.js
'
;
import
{
PMREMCubeUVPacker
}
from
'
./jsm/pmrem/PMREMCubeUVPacker.js
'
;
...
...
@@ -49,10 +48,14 @@
.
setPath
(
'
textures/equirectangular/
'
)
.
load
(
'
pedestrian_overpass_2k.hdr
'
,
function
(
texture
)
{
var
cubeGenerator
=
new
EquirectangularToCubeGenerator
(
texture
,
{
resolution
:
1024
}
);
cubeGenerator
.
update
(
renderer
);
var
options
=
{
minFilter
:
texture
.
minFilter
,
magFilter
:
texture
.
magFilter
};
var
pmremGenerator
=
new
PMREMGenerator
(
cubeGenerator
.
renderTarget
.
texture
);
scene
.
background
=
new
THREE
.
WebGLRenderTargetCube
(
1024
,
1024
,
options
).
fromEquirectangularTexture
(
renderer
,
texture
);
var
pmremGenerator
=
new
PMREMGenerator
(
scene
.
background
.
texture
);
pmremGenerator
.
update
(
renderer
);
var
pmremCubeUVPacker
=
new
PMREMCubeUVPacker
(
pmremGenerator
.
cubeLods
);
...
...
@@ -82,8 +85,6 @@
pmremGenerator
.
dispose
();
pmremCubeUVPacker
.
dispose
();
scene
.
background
=
cubeGenerator
.
renderTarget
;
}
);
renderer
=
new
THREE
.
WebGLRenderer
(
{
antialias
:
true
}
);
...
...
examples/webgl_loader_gltf_extensions.html
浏览文件 @
834e4927
...
...
@@ -26,7 +26,6 @@
import
{
DDSLoader
}
from
'
./jsm/loaders/DDSLoader.js
'
;
import
{
DRACOLoader
}
from
'
./jsm/loaders/DRACOLoader.js
'
;
import
{
RGBELoader
}
from
'
./jsm/loaders/RGBELoader.js
'
;
import
{
EquirectangularToCubeGenerator
}
from
'
./jsm/loaders/EquirectangularToCubeGenerator.js
'
;
import
{
PMREMGenerator
}
from
'
./jsm/pmrem/PMREMGenerator.js
'
;
import
{
PMREMCubeUVPacker
}
from
'
./jsm/pmrem/PMREMCubeUVPacker.js
'
;
...
...
@@ -159,12 +158,14 @@
.
setPath
(
'
textures/equirectangular/
'
)
.
load
(
'
venice_sunset_2k.hdr
'
,
function
(
texture
)
{
var
cubeGenerator
=
new
EquirectangularToCubeGenerator
(
texture
,
{
resolution
:
1024
}
);
cubeGenerator
.
update
(
renderer
);
var
options
=
{
minFilter
:
texture
.
minFilter
,
magFilter
:
texture
.
magFilter
};
background
=
cubeGenerator
.
renderTarget
;
background
=
new
THREE
.
WebGLRenderTargetCube
(
1024
,
1024
,
options
).
fromEquirectangularTexture
(
renderer
,
texture
)
;
var
pmremGenerator
=
new
PMREMGenerator
(
cubeGenerator
.
renderTarget
.
texture
);
var
pmremGenerator
=
new
PMREMGenerator
(
background
.
texture
);
pmremGenerator
.
update
(
renderer
);
var
pmremCubeUVPacker
=
new
PMREMCubeUVPacker
(
pmremGenerator
.
cubeLods
);
...
...
examples/webgl_materials_envmaps_exr.html
浏览文件 @
834e4927
...
...
@@ -20,7 +20,6 @@
import
{
GUI
}
from
'
./jsm/libs/dat.gui.module.js
'
;
import
{
OrbitControls
}
from
'
./jsm/controls/OrbitControls.js
'
;
import
{
EXRLoader
}
from
'
./jsm/loaders/EXRLoader.js
'
;
import
{
EquirectangularToCubeGenerator
}
from
'
./jsm/loaders/EquirectangularToCubeGenerator.js
'
;
import
{
PMREMGenerator
}
from
'
./jsm/pmrem/PMREMGenerator.js
'
;
import
{
PMREMCubeUVPacker
}
from
'
./jsm/pmrem/PMREMCubeUVPacker.js
'
;
...
...
@@ -75,18 +74,15 @@
scene
.
add
(
planeMesh
);
new
EXRLoader
()
.
setDataType
(
THREE
.
FloatType
)
.
setDataType
(
THREE
.
Half
FloatType
)
.
load
(
'
textures/piz_compressed.exr
'
,
function
(
texture
)
{
texture
.
minFilter
=
THREE
.
NearestFilter
;
// texture.magFilter = THREE.NearestFilter;
texture
.
encoding
=
THREE
.
LinearEncoding
;
var
cubemapGenerator
=
new
EquirectangularToCubeGenerator
(
texture
,
{
resolution
:
512
,
type
:
THREE
.
HalfFloatType
}
);
exrBackground
=
cubemapGenerator
.
renderTarget
;
var
cubeMapTexture
=
cubemapGenerator
.
update
(
renderer
);
exrBackground
=
new
THREE
.
WebGLRenderTargetCube
(
512
,
512
).
fromEquirectangularTexture
(
renderer
,
texture
);
var
pmremGenerator
=
new
PMREMGenerator
(
cubeMapT
exture
);
var
pmremGenerator
=
new
PMREMGenerator
(
exrBackground
.
t
exture
);
pmremGenerator
.
update
(
renderer
);
var
pmremCubeUVPacker
=
new
PMREMCubeUVPacker
(
pmremGenerator
.
cubeLods
);
...
...
@@ -104,12 +100,13 @@
texture
.
encoding
=
THREE
.
sRGBEncoding
;
var
cubemapGenerator
=
new
EquirectangularToCubeGenerator
(
texture
,
{
resolution
:
512
}
);
pngBackground
=
cubemapGenerator
.
renderTarget
;
var
options
=
{
generateMipmaps
:
true
};
var
cubeMapTexture
=
cubemapGenerator
.
update
(
renderer
);
pngBackground
=
new
THREE
.
WebGLRenderTargetCube
(
512
,
512
,
options
).
fromEquirectangularTexture
(
renderer
,
texture
);
var
pmremGenerator
=
new
PMREMGenerator
(
cubeMapT
exture
);
var
pmremGenerator
=
new
PMREMGenerator
(
pngBackground
.
t
exture
);
pmremGenerator
.
update
(
renderer
);
var
pmremCubeUVPacker
=
new
PMREMCubeUVPacker
(
pmremGenerator
.
cubeLods
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录