Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
F
fyge_for_tb
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
王剑峰
fyge_for_tb
Commits
1e9dd75d
Commit
1e9dd75d
authored
Oct 09, 2021
by
wjf
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
2.0.40
parent
8ffe35a0
Changes
11
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
39 additions
and
10 deletions
+39
-10
FYGE.d.ts
build/FYGE.d.ts
+6
-2
fyge.min.js
build/fyge.min.js
+1
-1
fyge.min.js.map
build/fyge.min.js.map
+1
-1
types.d.ts
build/types.d.ts
+6
-2
package.json
package.json
+1
-1
record.txt
record.txt
+5
-2
const.ts
src/2d/const.ts
+1
-1
D3Renderer.ts
src/3d/D3Renderer.ts
+3
-0
ShaderMaterial.ts
src/3d/materials/ShaderMaterial.ts
+4
-0
Sprite3dMaterial.ts
src/3d/materials/Sprite3dMaterial.ts
+7
-0
getCusShader.ts
src/3d/shaders/getCusShader.ts
+4
-0
No files found.
build/FYGE.d.ts
View file @
1e9dd75d
declare
namespace
FYGE
{
export
const
VERSION
=
"2.0.
39
"
;
declare
namespace
FYGE
{
export
const
VERSION
=
"2.0.
40
"
;
export
const
osType
:
"ios"
|
"android"
|
"pc"
;
...
...
@@ -9709,7 +9709,11 @@ export enum UniformType {
/**
* m3对象
*/
matrix3
=
"m3"
matrix3
=
"m3"
,
/**
* 其他类型,不转换,直接赋值
*/
any
=
"any"
}
export
class
Sprite3dMaterial
extends
ShaderMaterial
{
...
...
build/fyge.min.js
View file @
1e9dd75d
This diff is collapsed.
Click to expand it.
build/fyge.min.js.map
View file @
1e9dd75d
This diff is collapsed.
Click to expand it.
build/types.d.ts
View file @
1e9dd75d
export
const
VERSION
=
"2.0.
39
"
;
export
const
VERSION
=
"2.0.
40
"
;
export
const
osType
:
"ios"
|
"android"
|
"pc"
;
...
...
@@ -9709,7 +9709,11 @@ export enum UniformType {
/**
* m3对象
*/
matrix3
=
"m3"
matrix3
=
"m3"
,
/**
* 其他类型,不转换,直接赋值
*/
any
=
"any"
}
export
class
Sprite3dMaterial
extends
ShaderMaterial
{
...
...
package.json
View file @
1e9dd75d
{
"name"
:
"fyge"
,
"version"
:
"2.0.
39
"
,
"version"
:
"2.0.
40
"
,
"description"
:
"canvas渲染引擎"
,
"main"
:
"./build/fyge.min.js"
,
"types"
:
"./build/types.d.ts"
,
...
...
record.txt
View file @
1e9dd75d
...
...
@@ -447,8 +447,11 @@
D3Renderer的flush方法里mat.map和mat.envMap添加判断valid
getCusShader的useMap和useEnvMap添加判断valid
2.0.40 为了解决透明像素裁切导致uv获取到图集内其他区域的像素(暂时传值,后续考虑宏定义区分着色器)
D3Renderer的flush方法里mat.map里新传了uFrameUvs
getCusShader的片元着色器新增uniform量uFrameUvs,在获取纹理uMap之后多计算一步(是否在texture的frame内)
ShaderMaterial文件里UniformType新增any类型
Sprite3dMaterial添加uFrameUvs,涉及片元着色器,uniforms字段,map的set方法需要多处理uFrameUvs
外层canvas标签的transform数据在获取鼠标坐标时并未考虑,比如旋转
...
...
src/2d/const.ts
View file @
1e9dd75d
...
...
@@ -7,7 +7,7 @@
* @name VERSION
* @type {string}
*/
export
const
VERSION
=
"2.0.
39
"
;
export
const
VERSION
=
"2.0.
40
"
;
/**
...
...
src/3d/D3Renderer.ts
View file @
1e9dd75d
...
...
@@ -223,6 +223,9 @@ export class D3Renderer extends ObjectRenderer {
map
.
transform
.
update
();
//赋值偏移
uniforms
[
"uUvTransform"
]
=
map
.
transform
.
mapCoord
.
toArray
(
true
);
//对于透明像素有裁切的
const
{
x0
,
y0
,
x2
,
y2
}
=
map
.
_uvs
;
uniforms
[
"uFrameUvs"
]
=
[
x0
,
y0
,
x2
,
y2
];
}
//是否带环境贴图
if
(
mat
.
envMap
&&
mat
.
envMap
.
valid
)
{
//环境贴图先不考虑图集的情况,一般一张大jpg
...
...
src/3d/materials/ShaderMaterial.ts
View file @
1e9dd75d
...
...
@@ -121,4 +121,8 @@ export enum UniformType {
* m3对象
*/
matrix3
=
"m3"
,
/**
* 其他类型,不转换,直接赋值
*/
any
=
"any"
}
\ No newline at end of file
src/3d/materials/Sprite3dMaterial.ts
View file @
1e9dd75d
...
...
@@ -50,9 +50,12 @@ const sprite3dFragmentShader =
uniform vec3 color;
uniform float alpha;
uniform sampler2D map;
uniform vec4 uFrameUvs;
varying vec2 vTextureCoord;
void main() {
vec4 mapColor = texture2D( map, vTextureCoord );
vec2 s = step(vec2(uFrameUvs.x,uFrameUvs.y),vTextureCoord) - step(vec2(uFrameUvs.z,uFrameUvs.w),vTextureCoord);
mapColor *= abs(s.x * s.y);
gl_FragColor = vec4( color*alpha, alpha )*mapColor;
}`
;
...
...
@@ -66,6 +69,7 @@ export class Sprite3dMaterial extends ShaderMaterial {
alpha
:
{
type
:
UniformType
.
float
,
value
:
1.0
},
map
:
{
type
:
UniformType
.
texture
,
value
:
Texture
.
WHITE
},
uvTransform
:
{
type
:
UniformType
.
matrix3
,
value
:
new
Matrix
()
},
uFrameUvs
:
{
type
:
UniformType
.
any
,
value
:
[
0
,
0
,
1
,
1
]
},
});
this
.
_instanceType
=
"Sprite3dMaterial"
;
}
...
...
@@ -118,5 +122,8 @@ export class Sprite3dMaterial extends ShaderMaterial {
v
.
transform
.
update
();
//赋值偏移
(
this
.
uniforms
.
uvTransform
.
value
as
Matrix
).
copy
(
v
.
transform
.
mapCoord
);
//对于透明像素有裁切的
const
{
x0
,
y0
,
x2
,
y2
}
=
v
.
_uvs
;
this
.
uniforms
.
uFrameUvs
.
value
=
[
x0
,
y0
,
x2
,
y2
];
}
}
\ No newline at end of file
src/3d/shaders/getCusShader.ts
View file @
1e9dd75d
...
...
@@ -466,6 +466,7 @@ const FRAG = [
"uniform float uMatAlpha;"
,
//材质上的透明度
"#ifdef USE_MAP"
,
' uniform sampler2D uMap;'
,
//纹理
" uniform vec4 uFrameUvs;"
,
//为了trim的纹理需要多传一个,为了判断边缘透明
" varying vec2 vTextureCoord;"
,
//传到着色器的纹理坐标
"#endif"
,
...
...
@@ -602,6 +603,9 @@ const FRAG = [
" #ifdef USE_MAP"
,
" vec4 mapColor = texture2D( uMap, vTextureCoord );"
,
" color *= mapColor;"
,
" vec2 s = step(vec2(uFrameUvs.x,uFrameUvs.y),vTextureCoord) - step(vec2(uFrameUvs.z,uFrameUvs.w),vTextureCoord);"
,
// " vec2 s = step(vec2(0.6669921875,0.4111328125),vTextureCoord) - step(vec2(0.951171875,0.65625),vTextureCoord);",
" color *= abs(s.x * s.y);"
,
" #endif"
,
//计算顶点颜色
" #ifdef USE_VERTEXCOLOR"
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment