Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
车家大少爷
three.js
提交
d14d6a8c
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 搜索 >>
提交
d14d6a8c
编写于
10月 18, 2016
作者:
M
Mr.doob
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Updated builds.
上级
d4498a81
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
5 addition
and
5 deletion
+5
-5
build/three.js
build/three.js
+2
-2
build/three.min.js
build/three.min.js
+3
-3
未找到文件。
build/three.js
浏览文件 @
d14d6a8c
...
...
@@ -6603,8 +6603,8 @@
var validArea = new Box2();
validArea.min.set(
0, 0
);
validArea.max.set( viewport.
z - 16, viewport.w - 16
);
validArea.min.set(
viewport.x, viewport.y
);
validArea.max.set( viewport.
x + ( viewport.z - 16 ), viewport.y + ( viewport.w - 16 )
);
if ( program === undefined ) {
...
...
build/three.min.js
浏览文件 @
d14d6a8c
...
...
@@ -10,9 +10,9 @@ function Ke(a,b){a.uniform1fv(this.addr,b)}function Le(a,b){a.uniform1iv(this.ad
e=Zd(c,d);a.uniform1iv(this.addr,e);for(a=0;a!==d;++a)c.setTexture2D(b[a]||ae,e[a])}function Te(a,b,c){var d=b.length,e=Zd(c,d);a.uniform1iv(this.addr,e);for(a=0;a!==d;++a)c.setTextureCube(b[a]||be,e[a])}function Ue(a){switch(a){case 5126:return Ke;case 35664:return Me;case 35665:return Ne;case 35666:return Oe;case 35674:return Pe;case 35675:return Qe;case 35676:return Re;case 35678:return Se;case 35680:return Te;case 5124:case 35670:return Le;case 35667:case 35671:return ce;case 35668:case 35672:return de;
case 35669:case 35673:return ee}}function Ve(a,b,c){this.id=a;this.addr=c;this.setValue=Je(b.type)}function We(a,b,c){this.id=a;this.addr=c;this.size=b.size;this.setValue=Ue(b.type)}function fe(a){this.id=a;this.seq=[];this.map={}}function Sa(a,b,c){this.seq=[];this.map={};this.renderer=c;c=a.getProgramParameter(b,a.ACTIVE_UNIFORMS);for(var d=0;d!==c;++d){var e=a.getActiveUniform(b,d),f=a.getUniformLocation(b,e.name),g=this,h=e.name,l=h.length;for(td.lastIndex=0;;){var p=td.exec(h),E=td.lastIndex,
m=p[1],n=p[3];"]"===p[2]&&(m|=0);if(void 0===n||"["===n&&E+2===l){h=g;e=void 0===n?new Ve(m,e,f):new We(m,e,f);h.seq.push(e);h.map[e.id]=e;break}else n=g.map[m],void 0===n&&(n=new fe(m),m=g,g=n,m.seq.push(g),m.map[g.id]=g),g=n}}}function M(a,b,c){return void 0===b&&void 0===c?this.set(a):this.setRGB(a,b,c)}function dc(a,b){this.min=void 0!==a?a:new B(Infinity,Infinity);this.max=void 0!==b?b:new B(-Infinity,-Infinity)}function Xe(a,b){var c,d,e,f,g,h,l,p,E,m,n=a.context,k=a.state,t,v,z,u,w,I;this.render=
function
(
x
,
F
,
G
){
if
(
0
!==
b
.
length
){
x
=
new
q
;
var
C
=
G
.
w
/
G
.
z
,
L
=
.
5
*
G
.
z
,
Ka
=
.
5
*
G
.
w
,
Q
=
16
/
G
.
w
,
ba
=
new
B
(
Q
*
C
,
Q
),
xa
=
new
q
(
1
,
1
,
0
),
$a
=
new
B
(
1
,
1
),
Ea
=
new
dc
;
Ea
.
min
.
set
(
0
,
0
);
Ea
.
max
.
set
(
G
.
z
-
16
,
G
.
w
-
16
);
if
(
void
0
===
u
){
var
Q
=
new
Float32Array
([
-
1
,
-
1
,
0
,
0
,
1
,
-
1
,
1
,
0
,
1
,
1
,
1
,
1
,
-
1
,
1
,
0
,
1
]),
N
=
new
Uint16Array
([
0
,
1
,
2
,
0
,
2
,
3
]);
t
=
n
.
createBuffer
();
v
=
n
.
createBuffer
();
n
.
bindBuffer
(
n
.
ARRAY_BUFFER
,
t
);
n
.
bufferData
(
n
.
ARRAY_BUFFER
,
Q
,
n
.
STATIC_DRAW
);
n
.
bindBuffer
(
n
.
ELEMENT_ARRAY_BUFFER
,
v
);
n
.
bufferData
(
n
.
ELEMENT_ARRAY_BUFFER
,
N
,
n
.
STATIC_DRAW
);
w
=
n
.
createTexture
(
);
I
=
n
.
createTexture
();
k
.
bindTexture
(
n
.
TEXTURE_2D
,
w
);
n
.
texImage2D
(
n
.
TEXTURE_2D
,
0
,
n
.
RGB
,
16
,
16
,
0
,
n
.
RGB
,
n
.
UNSIGNED_BYTE
,
null
);
n
.
texParameteri
(
n
.
TEXTURE_2D
,
n
.
TEXTURE_WRAP_S
,
n
.
CLAMP_TO_EDGE
);
n
.
texParameteri
(
n
.
TEXTURE_2D
,
n
.
TEXTURE_WRAP_T
,
n
.
CLAMP_TO_EDGE
);
n
.
texParameteri
(
n
.
TEXTURE_2D
,
n
.
TEXTURE_MAG_FILTER
,
n
.
NEAREST
);
n
.
texParameteri
(
n
.
TEXTURE_2D
,
n
.
TEXTURE_MIN_FILTER
,
n
.
NEAREST
);
k
.
bindTexture
(
n
.
TEXTURE_2D
,
I
);
n
.
texImage2D
(
n
.
TEXTURE_2D
,
0
,
n
.
RGBA
,
16
,
16
,
0
,
n
.
RGBA
,
n
.
UNSIGNED_BYTE
,
null
);
n
.
texParameteri
(
n
.
TEXTURE_2D
,
n
.
TEXTURE_WRAP_S
,
n
.
CLAMP_TO_EDGE
);
n
.
texParameteri
(
n
.
TEXTURE_2D
,
n
.
TEXTURE_WRAP_T
,
n
.
CLAMP_TO_EDGE
);
n
.
texParameteri
(
n
.
TEXTURE_2D
,
n
.
TEXTURE_MAG_FILTER
,
n
.
NEAREST
);
n
.
texParameteri
(
n
.
TEXTURE_2D
,
n
.
TEXTURE_MIN_FILTER
,
n
.
NEAREST
);
var
Q
=
z
=
{
vertexShader
:
"
uniform lowp int renderType;
\n
uniform vec3 screenPosition;
\n
uniform vec2 scale;
\n
uniform float rotation;
\n
uniform sampler2D occlusionMap;
\n
attribute vec2 position;
\n
attribute vec2 uv;
\n
varying vec2 vUV;
\n
varying float vVisibility;
\n
void main() {
\n
vUV = uv;
\n
vec2 pos = position;
\n
if ( renderType == 2 ) {
\n
vec4 visibility = texture2D( occlusionMap, vec2( 0.1, 0.1 ) );
\n
visibility += texture2D( occlusionMap, vec2( 0.5, 0.1 ) );
\n
visibility += texture2D( occlusionMap, vec2( 0.9, 0.1 ) );
\n
visibility += texture2D( occlusionMap, vec2( 0.9, 0.5 ) );
\n
visibility += texture2D( occlusionMap, vec2( 0.9, 0.9 ) );
\n
visibility += texture2D( occlusionMap, vec2( 0.5, 0.9 ) );
\n
visibility += texture2D( occlusionMap, vec2( 0.1, 0.9 ) );
\n
visibility += texture2D( occlusionMap, vec2( 0.1, 0.5 ) );
\n
visibility += texture2D( occlusionMap, vec2( 0.5, 0.5 ) );
\n
vVisibility = visibility.r / 9.0;
\n
vVisibility *= 1.0 - visibility.g / 9.0;
\n
vVisibility *= visibility.b / 9.0;
\n
vVisibility *= 1.0 - visibility.a / 9.0;
\n
pos.x = cos( rotation ) * position.x - sin( rotation ) * position.y;
\n
pos.y = sin( rotation ) * position.x + cos( rotation ) * position.y;
\n
}
\n
gl_Position = vec4( ( pos * scale + screenPosition.xy ).xy, screenPosition.z, 1.0 );
\n
}
"
,
function(x,F,G){if(0!==b.length){x=new q;var C=G.w/G.z,L=.5*G.z,Ka=.5*G.w,Q=16/G.w,ba=new B(Q*C,Q),xa=new q(1,1,0),$a=new B(1,1),Ea=new dc;Ea.min.set(
G.x,G.y);Ea.max.set(G.x+(G.z-16),G.y+(G.w-16));if(void 0===u){var Q=new Float32Array([-1,-1,0,0,1,-1,1,0,1,1,1,1,-1,1,0,1]),N=new Uint16Array([0,1,2,0,2,3]);t=n.createBuffer();v=n.createBuffer();n.bindBuffer(n.ARRAY_BUFFER,t);n.bufferData(n.ARRAY_BUFFER,Q,n.STATIC_DRAW);n.bindBuffer(n.ELEMENT_ARRAY_BUFFER,v);n.bufferData(n.ELEMENT_ARRAY_BUFFER,N,n.STATIC_DRAW
);
w=n.createTexture();I=n.createTexture();k.bindTexture(n.TEXTURE_2D,w);n.texImage2D(n.TEXTURE_2D,0,n.RGB,16,16,0,n.RGB,n.UNSIGNED_BYTE,null);n.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_S,n.CLAMP_TO_EDGE);n.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_T,n.CLAMP_TO_EDGE);n.texParameteri(n.TEXTURE_2D,n.TEXTURE_MAG_FILTER,n.NEAREST);n.texParameteri(n.TEXTURE_2D,n.TEXTURE_MIN_FILTER,n.NEAREST);k.bindTexture(n.TEXTURE_2D,I);n.texImage2D(n.TEXTURE_2D,0,n.RGBA,16,16,0,n.RGBA,n.UNSIGNED_BYTE,null);n.texParameteri(n.TEXTURE_2D
,
n.
TEXTURE_WRAP_S,n.
CLAMP_TO_EDGE);n.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_T,n.CLAMP_TO_EDGE);n.texParameteri(n.TEXTURE_2D,n.TEXTURE_MAG_FILTER,n.NEAREST);n.texParameteri(n.TEXTURE_2D,n.TEXTURE_MIN_FILTER,n.NEAREST);var Q=z={vertexShader:"uniform lowp int renderType;\nuniform vec3 screenPosition;\nuniform vec2 scale;\nuniform float rotation;\nuniform sampler2D occlusionMap;\nattribute vec2 position;\nattribute vec2 uv;\nvarying vec2 vUV;\nvarying float vVisibility;\nvoid main() {\nvUV = uv;\nvec2 pos = position;\nif ( renderType == 2 ) {\nvec4 visibility = texture2D( occlusionMap, vec2( 0.1, 0.1 ) );\nvisibility += texture2D( occlusionMap, vec2( 0.5, 0.1 ) );\nvisibility += texture2D( occlusionMap, vec2( 0.9, 0.1 ) );\nvisibility += texture2D( occlusionMap, vec2( 0.9, 0.5 ) );\nvisibility += texture2D( occlusionMap, vec2( 0.9, 0.9 ) );\nvisibility += texture2D( occlusionMap, vec2( 0.5, 0.9 ) );\nvisibility += texture2D( occlusionMap, vec2( 0.1, 0.9 ) );\nvisibility += texture2D( occlusionMap, vec2( 0.1, 0.5 ) );\nvisibility += texture2D( occlusionMap, vec2( 0.5, 0.5 ) );\nvVisibility = visibility.r / 9.0;\nvVisibility *= 1.0 - visibility.g / 9.0;\nvVisibility *= visibility.b / 9.0;\nvVisibility *= 1.0 - visibility.a / 9.0;\npos.x = cos( rotation ) * position.x - sin( rotation ) * position.y;\npos.y = sin( rotation ) * position.x + cos( rotation ) * position.y;\n}\ngl_Position = vec4( ( pos * scale + screenPosition.xy ).xy, screenPosition.z, 1.0 );\n}",
fragmentShader:"uniform lowp int renderType;\nuniform sampler2D map;\nuniform float opacity;\nuniform vec3 color;\nvarying vec2 vUV;\nvarying float vVisibility;\nvoid main() {\nif ( renderType == 0 ) {\ngl_FragColor = vec4( 1.0, 0.0, 1.0, 0.0 );\n} else if ( renderType == 1 ) {\ngl_FragColor = texture2D( map, vUV );\n} else {\nvec4 texture = texture2D( map, vUV );\ntexture.a *= opacity * vVisibility;\ngl_FragColor = texture;\ngl_FragColor.rgb *= color;\n}\n}"},N=n.createProgram(),O=n.createShader(n.FRAGMENT_SHADER),
R=n.createShader(n.VERTEX_SHADER),S="precision "+a.getPrecision()+" float;\n";n.shaderSource(O,S+Q.fragmentShader);n.shaderSource(R,S+Q.vertexShader);n.compileShader(O);n.compileShader(R);n.attachShader(N,O);n.attachShader(N,R);n.linkProgram(N);u=N;E=n.getAttribLocation(u,"position");m=n.getAttribLocation(u,"uv");c=n.getUniformLocation(u,"renderType");d=n.getUniformLocation(u,"map");e=n.getUniformLocation(u,"occlusionMap");f=n.getUniformLocation(u,"opacity");g=n.getUniformLocation(u,"color");h=n.getUniformLocation(u,
"scale");l=n.getUniformLocation(u,"rotation");p=n.getUniformLocation(u,"screenPosition")}n.useProgram(u);k.initAttributes();k.enableAttribute(E);k.enableAttribute(m);k.disableUnusedAttributes();n.uniform1i(e,0);n.uniform1i(d,1);n.bindBuffer(n.ARRAY_BUFFER,t);n.vertexAttribPointer(E,2,n.FLOAT,!1,16,0);n.vertexAttribPointer(m,2,n.FLOAT,!1,16,8);n.bindBuffer(n.ELEMENT_ARRAY_BUFFER,v);k.disable(n.CULL_FACE);k.setDepthWrite(!1);N=0;for(O=b.length;N<O;N++)if(Q=16/G.w,ba.set(Q*C,Q),R=b[N],x.set(R.matrixWorld.elements[12],
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录