Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Ablesons
three.js
提交
7c68d173
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,发现更多精彩内容 >>
提交
7c68d173
编写于
6月 01, 2011
作者:
A
alteredq
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Simplified CrosseyedWebGLRenderer: using viewports instead of FBOs.
Now it's possible to have antialiased stereo.
上级
71de5572
变更
4
展开全部
隐藏空白更改
内联
并排
Showing
4 changed file
with
226 addition
and
254 deletion
+226
-254
build/Three.js
build/Three.js
+131
-133
build/custom/ThreeExtras.js
build/custom/ThreeExtras.js
+79
-81
examples/webgl_materials_cars_camaro_crosseyed.html
examples/webgl_materials_cars_camaro_crosseyed.html
+3
-3
src/extras/renderers/CrosseyedWebGLRenderer.js
src/extras/renderers/CrosseyedWebGLRenderer.js
+13
-37
未找到文件。
build/Three.js
浏览文件 @
7c68d173
因为 它太大了无法显示 source diff 。你可以改为
查看blob
。
build/custom/ThreeExtras.js
浏览文件 @
7c68d173
此差异已折叠。
点击以展开。
examples/webgl_materials_cars_camaro_crosseyed.html
浏览文件 @
7c68d173
...
...
@@ -67,8 +67,8 @@
function
init
()
{
container
=
document
.
createElement
(
'
div
'
);
document
.
body
.
appendChild
(
container
);
container
=
document
.
createElement
(
'
div
'
);
document
.
body
.
appendChild
(
container
);
camera
=
new
THREE
.
Camera
(
70
,
SCREEN_WIDTH
/
SCREEN_HEIGHT
,
1
,
100000
);
camera
.
position
.
z
=
1000
;
...
...
@@ -104,7 +104,7 @@
scene
.
addObject
(
lightMesh
);
webglRenderer
=
new
THREE
.
CrosseyedWebGLRenderer
(
{
separation
:
20
}
);
webglRenderer
=
new
THREE
.
CrosseyedWebGLRenderer
(
{
separation
:
20
,
antialias
:
true
}
);
webglRenderer
.
setSize
(
window
.
innerWidth
,
window
.
innerHeight
);
container
.
appendChild
(
webglRenderer
.
domElement
);
...
...
src/extras/renderers/CrosseyedWebGLRenderer.js
浏览文件 @
7c68d173
...
...
@@ -6,64 +6,39 @@ THREE.CrosseyedWebGLRenderer = function ( parameters ) {
THREE
.
WebGLRenderer
.
call
(
this
,
parameters
);
this
.
autoClear
=
false
;
var
_this
=
this
,
_setSize
=
this
.
setSize
,
_render
=
this
.
render
;
var
_width
,
_height
;
var
_cameraL
=
new
THREE
.
Camera
(),
_cameraR
=
new
THREE
.
Camera
();
var
_params
=
{
minFilter
:
THREE
.
LinearFilter
,
magFilter
:
THREE
.
NearestFilter
,
format
:
THREE
.
RGBAFormat
};
var
_renderTargetL
=
new
THREE
.
WebGLRenderTarget
(
256
,
512
,
_params
),
_renderTargetR
=
new
THREE
.
WebGLRenderTarget
(
256
,
512
,
_params
);
_this
.
separation
=
10
;
if
(
parameters
&&
parameters
.
separation
!==
undefined
)
_this
.
separation
=
parameters
.
separation
;
var
SCREEN_WIDTH
=
window
.
innerWidth
;
var
SCREEN_HEIGHT
=
window
.
innerHeight
;
var
HALF_WIDTH
=
SCREEN_WIDTH
/
2
;
var
_orthoCamera
=
new
THREE
.
Camera
();
_orthoCamera
.
projectionMatrix
=
THREE
.
Matrix4
.
makeOrtho
(
SCREEN_WIDTH
/
-
2
,
SCREEN_WIDTH
/
2
,
SCREEN_HEIGHT
/
2
,
SCREEN_HEIGHT
/
-
2
,
-
10000
,
10000
);
var
_camera
=
new
THREE
.
Camera
(
53
,
HALF_WIDTH
/
SCREEN_HEIGHT
,
1
,
10000
);
_camera
.
position
.
z
=
-
10
;
var
base
=
THREE
.
ShaderUtils
.
lib
[
"
screen
"
];
var
uniformsL
=
THREE
.
UniformsUtils
.
clone
(
base
.
uniforms
);
var
uniformsR
=
THREE
.
UniformsUtils
.
clone
(
base
.
uniforms
);
uniformsL
.
tDiffuse
.
texture
=
_renderTargetL
;
uniformsR
.
tDiffuse
.
texture
=
_renderTargetR
;
var
screenMaterialL
=
new
THREE
.
MeshShaderMaterial
(
{
fragmentShader
:
base
.
fragmentShader
,
vertexShader
:
base
.
vertexShader
,
uniforms
:
uniformsL
}
);
var
screenMaterialR
=
new
THREE
.
MeshShaderMaterial
(
{
fragmentShader
:
base
.
fragmentShader
,
vertexShader
:
base
.
vertexShader
,
uniforms
:
uniformsR
}
);
var
_left
=
new
THREE
.
Mesh
(
new
THREE
.
Plane
(
HALF_WIDTH
,
SCREEN_HEIGHT
),
screenMaterialL
);
var
_right
=
new
THREE
.
Mesh
(
new
THREE
.
Plane
(
HALF_WIDTH
,
SCREEN_HEIGHT
),
screenMaterialR
);
_left
.
position
.
x
=
-
HALF_WIDTH
/
2
;
_right
.
position
.
x
=
HALF_WIDTH
/
2
;
var
_scene
=
new
THREE
.
Scene
();
_scene
.
addObject
(
_left
);
_scene
.
addObject
(
_right
);
this
.
setSize
=
function
(
width
,
height
)
{
_setSize
.
call
(
_this
,
width
,
height
);
_renderTargetL
.
width
=
width
/
2
;
_renderTargetL
.
height
=
height
;
_renderTargetR
.
width
=
width
/
2
;
_renderTargetR
.
height
=
height
;
_width
=
width
/
2
;
_height
=
height
;
};
this
.
render
=
function
(
scene
,
camera
,
renderTarget
,
forceClear
)
{
this
.
clear
();
_cameraL
.
fov
=
camera
.
fov
;
_cameraL
.
aspect
=
0.5
*
camera
.
aspect
;
_cameraL
.
near
=
camera
.
near
;
...
...
@@ -80,10 +55,11 @@ THREE.CrosseyedWebGLRenderer = function ( parameters ) {
_cameraR
.
target
.
position
.
copy
(
camera
.
target
.
position
);
_cameraR
.
translateX
(
-
_this
.
separation
);
_render
.
call
(
_this
,
scene
,
_cameraL
,
_renderTargetL
);
_render
.
call
(
_this
,
scene
,
_cameraR
,
_renderTargetR
);
_render
.
call
(
_this
,
_scene
,
_orthoCamera
);
this
.
setViewport
(
0
,
0
,
_width
,
_height
);
_render
.
call
(
_this
,
scene
,
_cameraL
);
this
.
setViewport
(
_width
,
0
,
_width
,
_height
);
_render
.
call
(
_this
,
scene
,
_cameraR
,
false
);
};
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录