Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Ablesons
three.js
提交
0094e45f
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,发现更多精彩内容 >>
未验证
提交
0094e45f
编写于
10月 06, 2019
作者:
M
Michael Herzog
提交者:
GitHub
10月 06, 2019
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #17602 from Mugen87/dev34
Examples: Remove THREE.CubemapGenerator.
上级
974c3434
8ee592f5
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
2 addition
and
245 deletion
+2
-245
examples/js/loaders/EquirectangularToCubeGenerator.js
examples/js/loaders/EquirectangularToCubeGenerator.js
+0
-110
examples/jsm/loaders/EquirectangularToCubeGenerator.d.ts
examples/jsm/loaders/EquirectangularToCubeGenerator.d.ts
+0
-17
examples/jsm/loaders/EquirectangularToCubeGenerator.js
examples/jsm/loaders/EquirectangularToCubeGenerator.js
+1
-113
examples/webgl_materials_cubemap_dynamic.html
examples/webgl_materials_cubemap_dynamic.html
+1
-5
未找到文件。
examples/js/loaders/EquirectangularToCubeGenerator.js
浏览文件 @
0094e45f
/**
* @author Richard M. / https://github.com/richardmonette
* @author WestLangley / http://github.com/WestLangley
*/
THREE
.
CubemapGenerator
=
function
(
renderer
)
{
this
.
renderer
=
renderer
;
};
THREE
.
CubemapGenerator
.
prototype
.
fromEquirectangular
=
function
(
texture
,
options
)
{
options
=
options
||
{};
var
scene
=
new
THREE
.
Scene
();
var
shader
=
{
uniforms
:
{
tEquirect
:
{
value
:
null
},
},
vertexShader
:
`
varying vec3 vWorldDirection;
//include <common>
vec3 transformDirection( in vec3 dir, in mat4 matrix ) {
return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );
}
void main() {
vWorldDirection = transformDirection( position, modelMatrix );
#include <begin_vertex>
#include <project_vertex>
}
`
,
fragmentShader
:
`
uniform sampler2D tEquirect;
varying vec3 vWorldDirection;
//include <common>
#define RECIPROCAL_PI 0.31830988618
#define RECIPROCAL_PI2 0.15915494
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;
gl_FragColor = texture2D( tEquirect, sampleUV );
}
`
};
var
material
=
new
THREE
.
ShaderMaterial
(
{
type
:
'
CubemapFromEquirect
'
,
uniforms
:
THREE
.
UniformsUtils
.
clone
(
shader
.
uniforms
),
vertexShader
:
shader
.
vertexShader
,
fragmentShader
:
shader
.
fragmentShader
,
side
:
THREE
.
BackSide
,
blending
:
THREE
.
NoBlending
}
);
material
.
uniforms
.
tEquirect
.
value
=
texture
;
var
mesh
=
new
THREE
.
Mesh
(
new
THREE
.
BoxBufferGeometry
(
5
,
5
,
5
),
material
);
scene
.
add
(
mesh
);
var
resolution
=
options
.
resolution
||
512
;
var
params
=
{
type
:
texture
.
type
,
format
:
texture
.
format
,
encoding
:
texture
.
encoding
,
generateMipmaps
:
(
options
.
generateMipmaps
!==
undefined
)
?
options
.
generateMipmaps
:
texture
.
generateMipmaps
,
minFilter
:
(
options
.
minFilter
!==
undefined
)
?
options
.
minFilter
:
texture
.
minFilter
,
magFilter
:
(
options
.
magFilter
!==
undefined
)
?
options
.
magFilter
:
texture
.
magFilter
};
var
camera
=
new
THREE
.
CubeCamera
(
1
,
10
,
resolution
,
params
);
camera
.
update
(
this
.
renderer
,
scene
);
mesh
.
geometry
.
dispose
();
mesh
.
material
.
dispose
();
return
camera
.
renderTarget
;
};
//
THREE
.
EquirectangularToCubeGenerator
=
(
function
()
{
var
camera
=
new
THREE
.
PerspectiveCamera
(
90
,
1
,
0.1
,
10
);
...
...
examples/jsm/loaders/EquirectangularToCubeGenerator.d.ts
浏览文件 @
0094e45f
...
...
@@ -2,33 +2,16 @@ import {
PixelFormat
,
Texture
,
TextureDataType
,
TextureFilter
,
WebGLRenderer
,
WebGLRenderTargetCube
}
from
'
../../../src/Three
'
;
export
interface
CubemapGeneratorOptions
{
resolution
?:
number
;
generateMipmaps
?:
boolean
;
magFilter
?:
TextureFilter
;
minFilter
?:
TextureFilter
;
}
export
interface
EquirectangularToCubeGeneratorOptions
{
resolution
?:
number
;
format
?:
PixelFormat
;
type
?:
TextureDataType
;
}
export
class
CubemapGenerator
{
constructor
(
renderer
:
WebGLRenderer
);
renderer
:
WebGLRenderer
;
fromEquirectangular
(
texture
:
Texture
,
options
?:
CubemapGeneratorOptions
):
WebGLRenderTargetCube
;
}
export
class
EquirectangularToCubeGenerator
{
constructor
(
sourceTexture
:
Texture
,
options
?:
EquirectangularToCubeGeneratorOptions
);
...
...
examples/jsm/loaders/EquirectangularToCubeGenerator.js
浏览文件 @
0094e45f
/**
* @author Richard M. / https://github.com/richardmonette
* @author WestLangley / http://github.com/WestLangley
*/
import
{
BackSide
,
BoxBufferGeometry
,
CubeCamera
,
Mesh
,
NoBlending
,
PerspectiveCamera
,
Scene
,
ShaderMaterial
,
UniformsUtils
,
WebGLRenderTargetCube
}
from
"
../../../build/three.module.js
"
;
var
CubemapGenerator
=
function
(
renderer
)
{
this
.
renderer
=
renderer
;
};
CubemapGenerator
.
prototype
.
fromEquirectangular
=
function
(
texture
,
options
)
{
options
=
options
||
{};
var
scene
=
new
Scene
();
var
shader
=
{
uniforms
:
{
tEquirect
:
{
value
:
null
},
},
vertexShader
:
`
varying vec3 vWorldDirection;
//include <common>
vec3 transformDirection( in vec3 dir, in mat4 matrix ) {
return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );
}
void main() {
vWorldDirection = transformDirection( position, modelMatrix );
#include <begin_vertex>
#include <project_vertex>
}
`
,
fragmentShader
:
`
uniform sampler2D tEquirect;
varying vec3 vWorldDirection;
//include <common>
#define RECIPROCAL_PI 0.31830988618
#define RECIPROCAL_PI2 0.15915494
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;
gl_FragColor = texture2D( tEquirect, sampleUV );
}
`
};
var
material
=
new
ShaderMaterial
(
{
type
:
'
CubemapFromEquirect
'
,
uniforms
:
UniformsUtils
.
clone
(
shader
.
uniforms
),
vertexShader
:
shader
.
vertexShader
,
fragmentShader
:
shader
.
fragmentShader
,
side
:
BackSide
,
blending
:
NoBlending
}
);
material
.
uniforms
.
tEquirect
.
value
=
texture
;
var
mesh
=
new
Mesh
(
new
BoxBufferGeometry
(
5
,
5
,
5
),
material
);
scene
.
add
(
mesh
);
var
resolution
=
options
.
resolution
||
512
;
var
params
=
{
type
:
texture
.
type
,
format
:
texture
.
format
,
encoding
:
texture
.
encoding
,
generateMipmaps
:
(
options
.
generateMipmaps
!==
undefined
)
?
options
.
generateMipmaps
:
texture
.
generateMipmaps
,
minFilter
:
(
options
.
minFilter
!==
undefined
)
?
options
.
minFilter
:
texture
.
minFilter
,
magFilter
:
(
options
.
magFilter
!==
undefined
)
?
options
.
magFilter
:
texture
.
magFilter
};
var
camera
=
new
CubeCamera
(
1
,
10
,
resolution
,
params
);
camera
.
update
(
this
.
renderer
,
scene
);
mesh
.
geometry
.
dispose
();
mesh
.
material
.
dispose
();
return
camera
.
renderTarget
;
};
//
var
EquirectangularToCubeGenerator
=
(
function
()
{
var
camera
=
new
PerspectiveCamera
(
90
,
1
,
0.1
,
10
);
...
...
@@ -248,4 +136,4 @@ var EquirectangularToCubeGenerator = ( function () {
}
)();
export
{
CubemapGenerator
,
EquirectangularToCubeGenerator
};
export
{
EquirectangularToCubeGenerator
};
examples/webgl_materials_cubemap_dynamic.html
浏览文件 @
0094e45f
...
...
@@ -14,8 +14,6 @@
import
*
as
THREE
from
'
../build/three.module.js
'
;
import
{
CubemapGenerator
}
from
'
./jsm/loaders/EquirectangularToCubeGenerator.js
'
;
var
camera
,
scene
,
renderer
;
var
cube
,
sphere
,
torus
,
material
;
...
...
@@ -50,14 +48,12 @@
// background
var
options
=
{
resolution
:
1024
,
generateMipmaps
:
true
,
minFilter
:
THREE
.
LinearMipmapLinearFilter
,
magFilter
:
THREE
.
LinearFilter
};
scene
.
background
=
new
CubemapGenerator
(
renderer
).
fromEquirectangular
(
texture
,
options
);
scene
.
background
=
new
THREE
.
WebGLRenderTargetCube
(
1024
,
1024
,
options
).
fromEquirectangularTexture
(
renderer
,
texture
);
//
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录