@anov/3d 0.0.100 → 0.0.102

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,259 @@
1
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
2
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
3
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
4
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
5
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
6
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
7
+ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
8
+ import { DoubleSide, MeshPhysicalMaterial, RepeatWrapping, TextureLoader, sRGBEncoding, use } from '@anov/3d-core';
9
+ var SeasonEnum; // 冬
10
+ (function (SeasonEnum) {
11
+ SeasonEnum["Spring"] = "Spring";
12
+ SeasonEnum["Summer"] = "Summer";
13
+ SeasonEnum["Autumn"] = "Autumn";
14
+ SeasonEnum["Winter"] = "Winter";
15
+ })(SeasonEnum || (SeasonEnum = {}));
16
+ var PresetValue = {
17
+ Spring: {
18
+ treeSize: 1.0,
19
+ landSnowSize: 0.0,
20
+ noGran: 0.9,
21
+ treeColor1: [0, 1, 0.1647],
22
+ targetColor: [0.0, 0.58, 0.0],
23
+ changeColor: [0.7059, 0.9686, 0.5294]
24
+ },
25
+ Summer: {
26
+ treeSize: 0.2,
27
+ landSnowSize: 0.0,
28
+ noGran: 0.9,
29
+ treeColor1: [0.4314, 0.8588, 0.0],
30
+ targetColor: [0.0, 0.58, 0.0],
31
+ changeColor: [0.4314, 0.8588, 0.0]
32
+ },
33
+ Autumn: {
34
+ treeSize: 0.1,
35
+ landSnowSize: 0.0,
36
+ noGran: 0.9,
37
+ treeColor1: [0.8784, 0.5255, 0.1216],
38
+ targetColor: [0.0, 0.58, 0.0],
39
+ changeColor: [0.8667, 0.8784, 0.0]
40
+ },
41
+ Winter: {
42
+ treeSize: 4.0,
43
+ landSnowSize: 4.0,
44
+ noGran: 0.9,
45
+ treeColor1: [0.8784, 0.5255, 0.1216],
46
+ targetColor: [0.0, 0.58, 0.0],
47
+ changeColor: [0.996, 0.960, 0.764]
48
+ },
49
+ Snow: {
50
+ treeSize: 1.3,
51
+ landSnowSize: 8.8,
52
+ noGran: 0.9,
53
+ treeColor1: [0.8784, 0.5255, 0.1216],
54
+ targetColor: [0.0, 0.58, 0.0],
55
+ changeColor: [0.996, 0.960, 0.764]
56
+ }
57
+ };
58
+ var Season = /*#__PURE__*/function () {
59
+ function Season(app) {
60
+ _classCallCheck(this, Season);
61
+ _defineProperty(this, "app", void 0);
62
+ _defineProperty(this, "textureLeaf", void 0);
63
+ _defineProperty(this, "textureBole", void 0);
64
+ _defineProperty(this, "textureLand", void 0);
65
+ _defineProperty(this, "textureMassif", void 0);
66
+ _defineProperty(this, "textureNoise", void 0);
67
+ _defineProperty(this, "uniforms", void 0);
68
+ _defineProperty(this, "leafMaterial", void 0);
69
+ _defineProperty(this, "landMaterial", void 0);
70
+ _defineProperty(this, "massifMaterial", void 0);
71
+ _defineProperty(this, "haveSetMaterial", false);
72
+ this.app = app;
73
+ this.init();
74
+ }
75
+ _createClass(Season, [{
76
+ key: "init",
77
+ value: function init() {
78
+ var path = this.app.caseInstance.usePath;
79
+ var textureLoader = new TextureLoader();
80
+ this.textureLeaf = textureLoader.load("".concat(path, "season/Image_tree2.png"));
81
+ this.textureLeaf.encoding = sRGBEncoding;
82
+ this.textureNoise = textureLoader.load("".concat(path, "season/T_TileNoise.png"));
83
+ this.textureNoise.encoding = sRGBEncoding;
84
+ this.textureBole = textureLoader.load("".concat(path, "season/Image_tree3.png"));
85
+ this.textureBole.encoding = sRGBEncoding;
86
+ this.uniforms = {
87
+ time: {
88
+ value: 1.0
89
+ },
90
+ treeSize: {
91
+ value: 0.3
92
+ },
93
+ noGran: {
94
+ value: 0.9
95
+ },
96
+ landSnowSize: {
97
+ value: 0.0
98
+ },
99
+ treeColor1: {
100
+ value: [0.0, 0.58, 0.0]
101
+ },
102
+ targetColor: {
103
+ value: [0.0, 0.58, 0.0]
104
+ },
105
+ changeColor: {
106
+ value: [0.5, 0.58, 0.5]
107
+ },
108
+ texture1: {
109
+ value: this.textureLeaf
110
+ },
111
+ texture2: {
112
+ value: this.textureNoise
113
+ }
114
+ };
115
+ this.uniforms.texture1.value.wrapS = this.uniforms.texture1.value.wrapT = RepeatWrapping;
116
+ this.uniforms.texture2.value.wrapS = this.uniforms.texture2.value.wrapT = RepeatWrapping;
117
+ }
118
+ }, {
119
+ key: "setSeason",
120
+ value: function setSeason(type) {
121
+ var _this = this;
122
+ var duration = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2.0;
123
+ if (!this.haveSetMaterial) {
124
+ this.haveSetMaterial = true;
125
+ this.setLeafMaterial();
126
+ this.setLandMaterial();
127
+ this.setMassifMaterial();
128
+ use.useframe(function () {
129
+ _this.uniforms.time.value += 0.2;
130
+ });
131
+ }
132
+ PresetValue[type] && Object.keys(PresetValue[type]).forEach(function (key) {
133
+ _this.uniforms[key].value = PresetValue[type][key];
134
+ });
135
+ }
136
+ }, {
137
+ key: "setLeafMaterial",
138
+ value: function setLeafMaterial() {
139
+ var _this2 = this;
140
+ this.leafMaterial = new MeshPhysicalMaterial({
141
+ map: this.textureBole,
142
+ alphaTest: 0.2,
143
+ roughness: 1,
144
+ metalness: 0,
145
+ emissive: 0,
146
+ side: DoubleSide,
147
+ transparent: true,
148
+ depthWrite: true
149
+ });
150
+ this.leafMaterial.onBeforeCompile = function (shader, renderer) {
151
+ shader.vertexShader = "\n \n uniform float time;\n varying vec3 vWorldPosition;\n varying vec2 vUv;\n \n float hash( vec2 p ) {\n return fract( sin( dot( p, vec2( 127.1, 311.7 ) ) ) * 43758.5453123 );\n }\n \n float noise( vec2 p ) {\n vec2 i = floor( p );\n vec2 f = fract( p );\n vec2 u = f * f * ( 3.0 - 2.0 * f );\n \n return mix( mix( hash( i + vec2( 0.0, 0.0 ) ), \n hash( i + vec2( 1.0, 0.0 ) ), u.x),\n mix( hash( i + vec2( 0.0, 1.0 ) ), \n hash( i + vec2( 1.0, 1.0 ) ), u.x), u.y);\n }\n \n ".concat(shader.vertexShader);
152
+ shader.vertexShader = shader.vertexShader.replace('#include <begin_vertex>', "#include <begin_vertex>\n vUv = uv;\n vNormal = normalize(normal);\n vWorldPosition = (modelMatrix * vec4(position, 1.0)).xyz;\n \n vec3 wind = vec3(\n noise(position.xy * 0.5 + time * 0.1),\n noise(position.yz * 0.5 + time * 0.1),\n noise(position.zx * 0.5 + time * 0.1)\n );\n float strength = 0.5; // Adjust the strength of the wind effect\n vec3 displacedPosition = position + wind * strength;\n transformed = displacedPosition;\n ");
153
+ shader.fragmentShader = "\n uniform sampler2D texture1;\n uniform sampler2D texture2;\n uniform float treeSize;\n uniform vec3 treeColor1;\n uniform float landSnowSize;\n varying vec3 vWorldPosition;\n varying vec2 vUv;\n \n vec4 T3dPoi (sampler2D T,vec3 Position,vec3 normal, float loop){\n vec2 xy = vec2(Position.x,Position.y);\n vec2 xz = vec2(Position.x,Position.z);\n vec2 yz = vec2(Position.y,Position.z);\n float ix =clamp((abs(normal.x)-0.4)*2.,0.,1.);\n float iy =clamp((abs(normal.y)-0.4)*2.,0.,1.);\n return mix((mix(texture2D( T, xy*loop),texture2D( T, yz*loop),ix)),texture2D( T, xz*loop),iy);\n }\n ".concat(shader.fragmentShader, "\n ");
154
+ shader.fragmentShader = shader.fragmentShader.replace('#include <map_fragment>', " \n #include <map_fragment> \n vec4 T1 = texture2D(texture1, vUv)*vec4(treeColor1,1.);\n vec4 nT = texture2D(texture2, vUv);\n \n vec4 noiseT=T3dPoi(texture2,vWorldPosition,vNormal,0.02);\n \n diffuseColor = mix(diffuseColor, T1,pow(nT.r,treeSize) ); // \u53E0\u52A0\u6548\u679C\uFF0C\u8C03\u6574\u6DF7\u5408\u65B9\u5F0F\n float Si= clamp(pow(noiseT.r,(10.-landSnowSize))*landSnowSize*0.1,0.,1.);\n diffuseColor = mix(diffuseColor,vec4(1.,1.,1.,diffuseColor.a), Si);\n \n \n // diffuseColor =vec4(Si,Si,Si,1.) ;\n \n ");
155
+ shader.uniforms.time = _this2.uniforms.time;
156
+ shader.uniforms.texture1 = {
157
+ value: _this2.textureLeaf
158
+ };
159
+ shader.uniforms.texture2 = {
160
+ value: _this2.textureNoise
161
+ };
162
+ shader.uniforms.treeSize = _this2.uniforms.treeSize;
163
+ shader.uniforms.treeColor1 = _this2.uniforms.treeColor1;
164
+ shader.uniforms.landSnowSize = _this2.uniforms.landSnowSize;
165
+
166
+ // material.userData.shader = shader;
167
+ };
168
+
169
+ this.app.caseInstance.treesMesh.forEach(function (object) {
170
+ object.material = _this2.leafMaterial;
171
+ });
172
+ }
173
+ }, {
174
+ key: "setLandMaterial",
175
+ value: function setLandMaterial() {
176
+ var _this3 = this;
177
+ this.landMaterial = new MeshPhysicalMaterial({
178
+ // alphaTest: 0.2,
179
+ roughness: 1,
180
+ metalness: 0,
181
+ emissive: 0,
182
+ envMapIntensity: 0.2,
183
+ side: DoubleSide,
184
+ // transparent: true,
185
+ depthWrite: false
186
+ });
187
+ this.landMaterial.onBeforeCompile = function (shader, renderer) {
188
+ shader.vertexShader = " \n varying vec3 vWorldPosition;\n varying vec2 vUv;\n ".concat(shader.vertexShader);
189
+ shader.vertexShader = shader.vertexShader.replace('#include <begin_vertex>', "#include <begin_vertex>\n vUv = uv;\n vNormal = normalize(normal);\n vWorldPosition = (modelMatrix * vec4(position, 1.0)).xyz;\n ");
190
+ shader.fragmentShader = "\n uniform sampler2D texture1;\n uniform sampler2D texture2;\n uniform float treeSize;\n uniform float noGran;\n uniform vec3 treeColor1;\n uniform vec3 targetColor;\n uniform vec3 changeColor;\n uniform float landSnowSize;\n varying vec3 vWorldPosition;\n varying vec2 vUv;\n //varying vec2 vUv;\n vec4 T3dPoi (sampler2D T,vec3 Position,vec3 normal, float loop){\n vec2 xy = vec2(Position.x,Position.y);\n vec2 xz = vec2(Position.x,Position.z);\n vec2 yz = vec2(Position.y,Position.z);\n float ix =clamp((abs(normal.x)-0.4)*2.,0.,1.);\n float iy =clamp((abs(normal.y)-0.4)*2.,0.,1.);\n return mix((mix(texture2D( T, xy*loop),texture2D( T, yz*loop),ix)),texture2D( T, xz*loop),iy);\n }\n \n ".concat(shader.fragmentShader, "\n ");
191
+ shader.fragmentShader = shader.fragmentShader.replace('#include <map_fragment>', " \n #include <map_fragment> \n vec4 T1 = texture2D(texture1, vUv);\n \n float d = distance(T1.rgb, targetColor);\n float factor = smoothstep(0.4, 0.6, d);\n // T1.rgb = mix(treeColor1, T1.rgb, factor);\n \n float gray = dot(T1.rgb, vec3(0.299, 0.587, 0.114));\n vec4 T1_gray =vec4(vec3(gray)*changeColor,1.);\n \n T1.rgb = mix(T1_gray.rgb, T1.rgb, factor);\n \n \n vec4 nT = texture2D(texture2, vUv);\n \n vec4 noiseT2d=pow(texture2D(texture2, vWorldPosition.xz*0.002),vec4(10.-landSnowSize));\n \n diffuseColor = mix(diffuseColor, T1,pow(nT.r,treeSize) ); // \u53E0\u52A0\u6548\u679C\uFF0C\u8C03\u6574\u6DF7\u5408\u65B9\u5F0F\n diffuseColor=T1;\n \n vec3 upDirection = vec3(0.0, 1.0, 0.0);\n float dotProduct = dot(vNormal, upDirection);\n float snowAmount = smoothstep(0.5, 1.0, dotProduct);\n diffuseColor = mix(diffuseColor, vec4(1.0, 1., 1.,1.), snowAmount*landSnowSize*noiseT2d*0.1);\n \n \n ");
192
+ shader.uniforms.time = _this3.uniforms.time;
193
+ // shader.uniforms.texture1 = { value: matLandT0 };
194
+ shader.uniforms.texture1 = {
195
+ value: _this3.textureLand
196
+ };
197
+ shader.uniforms.texture2 = {
198
+ value: _this3.textureNoise
199
+ };
200
+ shader.uniforms.treeSize = _this3.uniforms.treeSize;
201
+ shader.uniforms.noGran = _this3.uniforms.noGran;
202
+ shader.uniforms.treeColor1 = _this3.uniforms.treeColor1;
203
+ shader.uniforms.targetColor = _this3.uniforms.targetColor;
204
+ shader.uniforms.changeColor = _this3.uniforms.changeColor;
205
+ shader.uniforms.landSnowSize = _this3.uniforms.landSnowSize;
206
+ };
207
+ this.app.caseInstance.grasslandMesh.forEach(function (object) {
208
+ _this3.textureLand = object.material.map;
209
+ object.material = _this3.landMaterial;
210
+ });
211
+ }
212
+ }, {
213
+ key: "setMassifMaterial",
214
+ value: function setMassifMaterial() {
215
+ var _this4 = this;
216
+ this.massifMaterial = new MeshPhysicalMaterial({
217
+ alphaTest: 0.2,
218
+ roughness: 1,
219
+ metalness: 0,
220
+ emissive: 0,
221
+ envMapIntensity: 0.2,
222
+ side: DoubleSide,
223
+ transparent: true,
224
+ depthWrite: false
225
+ });
226
+ this.massifMaterial.onBeforeCompile = function (shader, renderer) {
227
+ // console.log(shader.vertexShader);
228
+ shader.vertexShader = " \n varying vec3 vWorldPosition;\n varying vec2 vUv;\n ".concat(shader.vertexShader);
229
+ shader.vertexShader = shader.vertexShader.replace('#include <begin_vertex>', "#include <begin_vertex>\n vUv = uv;\n \n vNormal = normalize(normal);\n vWorldPosition = (modelMatrix * vec4(position, 1.0)).xyz;\n ");
230
+ shader.fragmentShader = "\n uniform sampler2D texture1;\n uniform sampler2D texture2;\n uniform float treeSize;\n uniform float noGran;\n uniform vec3 treeColor1;\n uniform vec3 targetColor;\n uniform vec3 changeColor;\n uniform float landSnowSize;\n varying vec3 vWorldPosition;\n varying vec2 vUv;\n \n vec4 T3dPoi (sampler2D T,vec3 Position,vec3 normal, float loop){\n vec2 xy = vec2(Position.x,Position.y);\n vec2 xz = vec2(Position.x,Position.z);\n vec2 yz = vec2(Position.y,Position.z);\n float ix =clamp((abs(normal.x)-0.4)*2.,0.,1.);\n float iy =clamp((abs(normal.y)-0.4)*2.,0.,1.);\n return mix((mix(texture2D( T, xy*loop),texture2D( T, yz*loop),ix)),texture2D( T, xz*loop),iy);\n }\n \n ".concat(shader.fragmentShader, "\n ");
231
+ shader.fragmentShader = shader.fragmentShader.replace('#include <map_fragment>', " \n #include <map_fragment> \n vec4 T1 = texture2D(texture1, vUv);\n \n float d = distance(T1.rgb, targetColor);\n float factor = smoothstep(0.4, 0.6, d);\n // T1.rgb = mix(treeColor1, T1.rgb, factor);\n \n float gray = dot(T1.rgb, vec3(0.299, 0.587, 0.114));\n vec4 T1_gray =vec4(vec3(gray)*changeColor,1.);\n \n T1.rgb = mix(T1_gray.rgb, T1.rgb, factor);\n \n diffuseColor=T1;\n vec4 nT = texture2D(texture2, vUv);\n \n float noiseT=pow( clamp(texture2D(texture2, vWorldPosition.xz*0.002).r,0.,1.),(10.0-landSnowSize));\n vec4 noiseT2d=pow(texture2D(texture2, vWorldPosition.xz*0.002),vec4(10.0-landSnowSize));\n \n //diffuseColor = mix(diffuseColor, T1,pow(nT.r,1.) ); // \u53E0\u52A0\u6548\u679C\uFF0C\u8C03\u6574\u6DF7\u5408\u65B9\u5F0F\n \n \n vec3 upDirection = vec3(0.0, 1.0, 0.0);\n float dotProduct = dot(vNormal, upDirection);\n float snowAmount = smoothstep(0.5, 1.0, dotProduct);\n diffuseColor = mix(diffuseColor, vec4(5.0, 5., 5.,5.),snowAmount* noiseT*0.5*landSnowSize);\n //diffuseColor=nT;\n \n ");
232
+ shader.uniforms.time = _this4.uniforms.time;
233
+ // shader.uniforms.texture1 = { value: matLandT0 };
234
+ shader.uniforms.texture1 = {
235
+ value: _this4.textureMassif
236
+ };
237
+ shader.uniforms.texture2 = {
238
+ value: _this4.textureNoise
239
+ };
240
+ shader.uniforms.treeSize = _this4.uniforms.treeSize;
241
+ shader.uniforms.noGran = _this4.uniforms.noGran;
242
+ shader.uniforms.treeColor1 = _this4.uniforms.treeColor1;
243
+ shader.uniforms.targetColor = _this4.uniforms.targetColor;
244
+ shader.uniforms.changeColor = _this4.uniforms.changeColor;
245
+ shader.uniforms.landSnowSize = _this4.uniforms.landSnowSize;
246
+
247
+ // material.userData.shader = shader;
248
+ };
249
+
250
+ this.app.caseInstance.massifMesh.forEach(function (object) {
251
+ _this4.textureMassif = object.material.map;
252
+ object.material = _this4.massifMaterial;
253
+ });
254
+ }
255
+ }]);
256
+ return Season;
257
+ }();
258
+ export default Season;
259
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["DoubleSide","MeshPhysicalMaterial","RepeatWrapping","TextureLoader","sRGBEncoding","use","SeasonEnum","PresetValue","Spring","treeSize","landSnowSize","noGran","treeColor1","targetColor","changeColor","Summer","Autumn","Winter","Snow","Season","app","init","path","caseInstance","usePath","textureLoader","textureLeaf","load","encoding","textureNoise","textureBole","uniforms","time","value","texture1","texture2","wrapS","wrapT","type","duration","haveSetMaterial","setLeafMaterial","setLandMaterial","setMassifMaterial","useframe","Object","keys","forEach","key","leafMaterial","map","alphaTest","roughness","metalness","emissive","side","transparent","depthWrite","onBeforeCompile","shader","renderer","vertexShader","replace","fragmentShader","treesMesh","object","material","landMaterial","envMapIntensity","textureLand","grasslandMesh","massifMaterial","textureMassif","massifMesh"],"sources":["../../../../src/module/environment/season/index.ts"],"sourcesContent":["import type { Material, Texture } from '@anov/3d-core'\nimport { DoubleSide, MeshPhysicalMaterial, RepeatWrapping, TextureLoader, sRGBEncoding, use } from '@anov/3d-core'\nimport type Anov3D from '../../../sdkEntry'\n\nenum SeasonEnum {\n Spring = 'Spring', // 春\n Summer = 'Summer', // 夏\n Autumn = 'Autumn', // 秋\n Winter = 'Winter', // 冬\n}\n\nconst PresetValue = {\n Spring: {\n treeSize: 1.0, landSnowSize: 0.0, noGran: 0.9, treeColor1: [0, 1, 0.1647], targetColor: [0.0, 0.58, 0.0], changeColor: [0.7059, 0.9686, 0.5294],\n },\n Summer: {\n treeSize: 0.2, landSnowSize: 0.0, noGran: 0.9, treeColor1: [0.4314, 0.8588, 0.0], targetColor: [0.0, 0.58, 0.0], changeColor: [0.4314, 0.8588, 0.0],\n },\n Autumn: {\n treeSize: 0.1, landSnowSize: 0.0, noGran: 0.9, treeColor1: [0.8784, 0.5255, 0.1216], targetColor: [0.0, 0.58, 0.0], changeColor: [0.8667, 0.8784, 0.0],\n },\n Winter: {\n treeSize: 4.0, landSnowSize: 4.0, noGran: 0.9, treeColor1: [0.8784, 0.5255, 0.1216], targetColor: [0.0, 0.58, 0.0], changeColor: [0.996, 0.960, 0.764],\n },\n Snow: {\n treeSize: 1.3, landSnowSize: 8.8, noGran: 0.9, treeColor1: [0.8784, 0.5255, 0.1216], targetColor: [0.0, 0.58, 0.0], changeColor: [0.996, 0.960, 0.764],\n },\n}\n\nclass Season {\n app: Anov3D\n textureLeaf: Texture\n textureBole: Texture\n textureLand: Texture\n textureMassif: Texture\n textureNoise: Texture\n uniforms: any\n leafMaterial: Material\n landMaterial: Material\n massifMaterial: Material\n haveSetMaterial = false\n\n constructor(app: Anov3D) {\n this.app = app\n this.init()\n }\n\n init() {\n const path = this.app.caseInstance.usePath\n const textureLoader = new TextureLoader()\n this.textureLeaf = textureLoader.load(`${path}season/Image_tree2.png`)\n this.textureLeaf.encoding = sRGBEncoding\n this.textureNoise = textureLoader.load(`${path}season/T_TileNoise.png`)\n this.textureNoise.encoding = sRGBEncoding\n this.textureBole = textureLoader.load(`${path}season/Image_tree3.png`)\n this.textureBole.encoding = sRGBEncoding\n\n this.uniforms = {\n time: { value: 1.0 },\n treeSize: { value: 0.3 },\n noGran: { value: 0.9 },\n landSnowSize: { value: 0.0 },\n treeColor1: { value: [0.0, 0.58, 0.0] },\n targetColor: { value: [0.0, 0.58, 0.0] },\n changeColor: { value: [0.5, 0.58, 0.5] },\n texture1: { value: this.textureLeaf },\n texture2: { value: this.textureNoise },\n }\n this.uniforms.texture1.value.wrapS = this.uniforms.texture1.value.wrapT = RepeatWrapping\n this.uniforms.texture2.value.wrapS = this.uniforms.texture2.value.wrapT = RepeatWrapping\n }\n\n setSeason(type, duration = 2.0) {\n if (!this.haveSetMaterial) {\n this.haveSetMaterial = true\n this.setLeafMaterial()\n this.setLandMaterial()\n this.setMassifMaterial()\n\n use.useframe(() => {\n this.uniforms.time.value += 0.2\n })\n }\n\n PresetValue[type] && Object.keys(PresetValue[type]).forEach((key) => {\n this.uniforms[key].value = PresetValue[type][key]\n })\n }\n\n setLeafMaterial() {\n this.leafMaterial = new MeshPhysicalMaterial(\n {\n map: this.textureBole,\n alphaTest: 0.2,\n roughness: 1,\n metalness: 0,\n emissive: 0,\n side: DoubleSide,\n transparent: true,\n depthWrite: true,\n })\n this.leafMaterial.onBeforeCompile = (shader, renderer) => {\n shader.vertexShader = `\n \n uniform float time;\n varying vec3 vWorldPosition;\n varying vec2 vUv;\n \n float hash( vec2 p ) {\n return fract( sin( dot( p, vec2( 127.1, 311.7 ) ) ) * 43758.5453123 );\n }\n \n float noise( vec2 p ) {\n vec2 i = floor( p );\n vec2 f = fract( p );\n vec2 u = f * f * ( 3.0 - 2.0 * f );\n \n return mix( mix( hash( i + vec2( 0.0, 0.0 ) ), \n hash( i + vec2( 1.0, 0.0 ) ), u.x),\n mix( hash( i + vec2( 0.0, 1.0 ) ), \n hash( i + vec2( 1.0, 1.0 ) ), u.x), u.y);\n }\n \n ${shader.vertexShader}`\n\n shader.vertexShader = shader.vertexShader.replace(\n '#include <begin_vertex>',\n `#include <begin_vertex>\n vUv = uv;\n vNormal = normalize(normal);\n vWorldPosition = (modelMatrix * vec4(position, 1.0)).xyz;\n \n vec3 wind = vec3(\n noise(position.xy * 0.5 + time * 0.1),\n noise(position.yz * 0.5 + time * 0.1),\n noise(position.zx * 0.5 + time * 0.1)\n );\n float strength = 0.5; // Adjust the strength of the wind effect\n vec3 displacedPosition = position + wind * strength;\n transformed = displacedPosition;\n `,\n )\n shader.fragmentShader = `\n uniform sampler2D texture1;\n uniform sampler2D texture2;\n uniform float treeSize;\n uniform vec3 treeColor1;\n uniform float landSnowSize;\n varying vec3 vWorldPosition;\n varying vec2 vUv;\n \n vec4 T3dPoi (sampler2D T,vec3 Position,vec3 normal, float loop){\n vec2 xy = vec2(Position.x,Position.y);\n vec2 xz = vec2(Position.x,Position.z);\n vec2 yz = vec2(Position.y,Position.z);\n float ix =clamp((abs(normal.x)-0.4)*2.,0.,1.);\n float iy =clamp((abs(normal.y)-0.4)*2.,0.,1.);\n return mix((mix(texture2D( T, xy*loop),texture2D( T, yz*loop),ix)),texture2D( T, xz*loop),iy);\n }\n ${shader.fragmentShader}\n `\n shader.fragmentShader = shader.fragmentShader.replace(\n '#include <map_fragment>',\n ` \n #include <map_fragment> \n vec4 T1 = texture2D(texture1, vUv)*vec4(treeColor1,1.);\n vec4 nT = texture2D(texture2, vUv);\n \n vec4 noiseT=T3dPoi(texture2,vWorldPosition,vNormal,0.02);\n \n diffuseColor = mix(diffuseColor, T1,pow(nT.r,treeSize) ); // 叠加效果,调整混合方式\n float Si= clamp(pow(noiseT.r,(10.-landSnowSize))*landSnowSize*0.1,0.,1.);\n diffuseColor = mix(diffuseColor,vec4(1.,1.,1.,diffuseColor.a), Si);\n \n \n // diffuseColor =vec4(Si,Si,Si,1.) ;\n \n `,\n )\n\n shader.uniforms.time = this.uniforms.time\n shader.uniforms.texture1 = { value: this.textureLeaf }\n shader.uniforms.texture2 = { value: this.textureNoise }\n shader.uniforms.treeSize = this.uniforms.treeSize\n shader.uniforms.treeColor1 = this.uniforms.treeColor1\n shader.uniforms.landSnowSize = this.uniforms.landSnowSize\n\n // material.userData.shader = shader;\n }\n this.app.caseInstance.treesMesh.forEach((object) => {\n object.material = this.leafMaterial\n })\n }\n\n setLandMaterial() {\n this.landMaterial = new MeshPhysicalMaterial(\n {\n // alphaTest: 0.2,\n roughness: 1,\n metalness: 0,\n emissive: 0,\n envMapIntensity: 0.2,\n side: DoubleSide,\n // transparent: true,\n depthWrite: false,\n })\n this.landMaterial.onBeforeCompile = (shader, renderer) => {\n shader.vertexShader = ` \n varying vec3 vWorldPosition;\n varying vec2 vUv;\n ${shader.vertexShader}`\n\n shader.vertexShader = shader.vertexShader.replace(\n '#include <begin_vertex>',\n `#include <begin_vertex>\n vUv = uv;\n vNormal = normalize(normal);\n vWorldPosition = (modelMatrix * vec4(position, 1.0)).xyz;\n `,\n )\n shader.fragmentShader = `\n uniform sampler2D texture1;\n uniform sampler2D texture2;\n uniform float treeSize;\n uniform float noGran;\n uniform vec3 treeColor1;\n uniform vec3 targetColor;\n uniform vec3 changeColor;\n uniform float landSnowSize;\n varying vec3 vWorldPosition;\n varying vec2 vUv;\n //varying vec2 vUv;\n vec4 T3dPoi (sampler2D T,vec3 Position,vec3 normal, float loop){\n vec2 xy = vec2(Position.x,Position.y);\n vec2 xz = vec2(Position.x,Position.z);\n vec2 yz = vec2(Position.y,Position.z);\n float ix =clamp((abs(normal.x)-0.4)*2.,0.,1.);\n float iy =clamp((abs(normal.y)-0.4)*2.,0.,1.);\n return mix((mix(texture2D( T, xy*loop),texture2D( T, yz*loop),ix)),texture2D( T, xz*loop),iy);\n }\n \n ${shader.fragmentShader}\n `\n shader.fragmentShader = shader.fragmentShader.replace(\n '#include <map_fragment>',\n ` \n #include <map_fragment> \n vec4 T1 = texture2D(texture1, vUv);\n \n float d = distance(T1.rgb, targetColor);\n float factor = smoothstep(0.4, 0.6, d);\n // T1.rgb = mix(treeColor1, T1.rgb, factor);\n \n float gray = dot(T1.rgb, vec3(0.299, 0.587, 0.114));\n vec4 T1_gray =vec4(vec3(gray)*changeColor,1.);\n \n T1.rgb = mix(T1_gray.rgb, T1.rgb, factor);\n \n \n vec4 nT = texture2D(texture2, vUv);\n \n vec4 noiseT2d=pow(texture2D(texture2, vWorldPosition.xz*0.002),vec4(10.-landSnowSize));\n \n diffuseColor = mix(diffuseColor, T1,pow(nT.r,treeSize) ); // 叠加效果,调整混合方式\n diffuseColor=T1;\n \n vec3 upDirection = vec3(0.0, 1.0, 0.0);\n float dotProduct = dot(vNormal, upDirection);\n float snowAmount = smoothstep(0.5, 1.0, dotProduct);\n diffuseColor = mix(diffuseColor, vec4(1.0, 1., 1.,1.), snowAmount*landSnowSize*noiseT2d*0.1);\n \n \n `,\n )\n\n shader.uniforms.time = this.uniforms.time\n // shader.uniforms.texture1 = { value: matLandT0 };\n shader.uniforms.texture1 = { value: this.textureLand }\n shader.uniforms.texture2 = { value: this.textureNoise }\n shader.uniforms.treeSize = this.uniforms.treeSize\n shader.uniforms.noGran = this.uniforms.noGran\n shader.uniforms.treeColor1 = this.uniforms.treeColor1\n shader.uniforms.targetColor = this.uniforms.targetColor\n shader.uniforms.changeColor = this.uniforms.changeColor\n shader.uniforms.landSnowSize = this.uniforms.landSnowSize\n }\n this.app.caseInstance.grasslandMesh.forEach((object) => {\n this.textureLand = object.material.map\n object.material = this.landMaterial\n })\n }\n\n setMassifMaterial() {\n this.massifMaterial = new MeshPhysicalMaterial(\n {\n alphaTest: 0.2,\n roughness: 1,\n metalness: 0,\n emissive: 0,\n envMapIntensity: 0.2,\n side: DoubleSide,\n transparent: true,\n depthWrite: false,\n })\n\n this.massifMaterial.onBeforeCompile = (shader, renderer) => {\n // console.log(shader.vertexShader);\n shader.vertexShader = ` \n varying vec3 vWorldPosition;\n varying vec2 vUv;\n ${shader.vertexShader}`\n\n shader.vertexShader = shader.vertexShader.replace(\n '#include <begin_vertex>',\n `#include <begin_vertex>\n vUv = uv;\n \n vNormal = normalize(normal);\n vWorldPosition = (modelMatrix * vec4(position, 1.0)).xyz;\n `,\n )\n shader.fragmentShader = `\n uniform sampler2D texture1;\n uniform sampler2D texture2;\n uniform float treeSize;\n uniform float noGran;\n uniform vec3 treeColor1;\n uniform vec3 targetColor;\n uniform vec3 changeColor;\n uniform float landSnowSize;\n varying vec3 vWorldPosition;\n varying vec2 vUv;\n \n vec4 T3dPoi (sampler2D T,vec3 Position,vec3 normal, float loop){\n vec2 xy = vec2(Position.x,Position.y);\n vec2 xz = vec2(Position.x,Position.z);\n vec2 yz = vec2(Position.y,Position.z);\n float ix =clamp((abs(normal.x)-0.4)*2.,0.,1.);\n float iy =clamp((abs(normal.y)-0.4)*2.,0.,1.);\n return mix((mix(texture2D( T, xy*loop),texture2D( T, yz*loop),ix)),texture2D( T, xz*loop),iy);\n }\n \n ${shader.fragmentShader}\n `\n shader.fragmentShader = shader.fragmentShader.replace(\n '#include <map_fragment>',\n ` \n #include <map_fragment> \n vec4 T1 = texture2D(texture1, vUv);\n \n float d = distance(T1.rgb, targetColor);\n float factor = smoothstep(0.4, 0.6, d);\n // T1.rgb = mix(treeColor1, T1.rgb, factor);\n \n float gray = dot(T1.rgb, vec3(0.299, 0.587, 0.114));\n vec4 T1_gray =vec4(vec3(gray)*changeColor,1.);\n \n T1.rgb = mix(T1_gray.rgb, T1.rgb, factor);\n \n diffuseColor=T1;\n vec4 nT = texture2D(texture2, vUv);\n \n float noiseT=pow( clamp(texture2D(texture2, vWorldPosition.xz*0.002).r,0.,1.),(10.0-landSnowSize));\n vec4 noiseT2d=pow(texture2D(texture2, vWorldPosition.xz*0.002),vec4(10.0-landSnowSize));\n \n //diffuseColor = mix(diffuseColor, T1,pow(nT.r,1.) ); // 叠加效果,调整混合方式\n \n \n vec3 upDirection = vec3(0.0, 1.0, 0.0);\n float dotProduct = dot(vNormal, upDirection);\n float snowAmount = smoothstep(0.5, 1.0, dotProduct);\n diffuseColor = mix(diffuseColor, vec4(5.0, 5., 5.,5.),snowAmount* noiseT*0.5*landSnowSize);\n //diffuseColor=nT;\n \n `,\n )\n\n shader.uniforms.time = this.uniforms.time\n // shader.uniforms.texture1 = { value: matLandT0 };\n shader.uniforms.texture1 = { value: this.textureMassif }\n shader.uniforms.texture2 = { value: this.textureNoise }\n shader.uniforms.treeSize = this.uniforms.treeSize\n shader.uniforms.noGran = this.uniforms.noGran\n shader.uniforms.treeColor1 = this.uniforms.treeColor1\n shader.uniforms.targetColor = this.uniforms.targetColor\n shader.uniforms.changeColor = this.uniforms.changeColor\n shader.uniforms.landSnowSize = this.uniforms.landSnowSize\n\n // material.userData.shader = shader;\n }\n\n this.app.caseInstance.massifMesh.forEach((object) => {\n this.textureMassif = object.material.map\n object.material = this.massifMaterial\n })\n }\n}\n\nexport default Season"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@anov/3d",
3
- "version": "0.0.100",
3
+ "version": "0.0.102",
4
4
  "description": "",
5
5
  "author": "",
6
6
  "license": "MIT",
@@ -22,8 +22,8 @@
22
22
  "localforage": "^1.10.0",
23
23
  "resize-observer-polyfill": "^1.5.1",
24
24
  "uuid": "^9.0.1",
25
- "@anov/3d-ability": "^0.0.14",
26
- "@anov/3d-core": "^0.0.13"
25
+ "@anov/3d-core": "^0.0.13",
26
+ "@anov/3d-ability": "^0.0.14"
27
27
  },
28
28
  "devDependencies": {
29
29
  "@types/uuid": "^9.0.7"