@anov/3d 0.0.266 → 0.0.268
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.
|
@@ -5,7 +5,7 @@ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _d
|
|
|
5
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
6
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
7
7
|
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
8
|
-
import { DoubleSide, MeshPhysicalMaterial, RepeatWrapping,
|
|
8
|
+
import { DoubleSide, MeshPhysicalMaterial, RepeatWrapping, SRGBColorSpace, TextureLoader, use } from '@anov/3d-core';
|
|
9
9
|
var SeasonEnum = /*#__PURE__*/function (SeasonEnum) {
|
|
10
10
|
SeasonEnum["Spring"] = "Spring";
|
|
11
11
|
SeasonEnum["Summer"] = "Summer";
|
|
@@ -78,11 +78,11 @@ var Season = /*#__PURE__*/function () {
|
|
|
78
78
|
var path = this.app.caseInstance.usePath;
|
|
79
79
|
var textureLoader = new TextureLoader();
|
|
80
80
|
this.textureLeaf = textureLoader.load("".concat(path, "season/Image_tree2.png"));
|
|
81
|
-
this.textureLeaf.
|
|
81
|
+
this.textureLeaf.colorSpace = SRGBColorSpace;
|
|
82
82
|
this.textureNoise = textureLoader.load("".concat(path, "season/T_TileNoise.png"));
|
|
83
|
-
this.textureNoise.
|
|
83
|
+
this.textureNoise.colorSpace = SRGBColorSpace;
|
|
84
84
|
this.textureBole = textureLoader.load("".concat(path, "season/Image_tree3.png"));
|
|
85
|
-
this.textureBole.
|
|
85
|
+
this.textureBole.colorSpace = SRGBColorSpace;
|
|
86
86
|
this.uniforms = {
|
|
87
87
|
time: {
|
|
88
88
|
value: 1.0
|
|
@@ -1 +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","_classCallCheck","_defineProperty","init","_createClass","key","value","path","caseInstance","usePath","textureLoader","textureLeaf","load","concat","encoding","textureNoise","textureBole","uniforms","time","texture1","texture2","wrapS","wrapT","setSeason","type","_this","duration","arguments","length","undefined","haveSetMaterial","setLeafMaterial","setLandMaterial","setMassifMaterial","useframe","Object","keys","forEach","_this2","leafMaterial","map","alphaTest","roughness","metalness","emissive","side","transparent","depthWrite","onBeforeCompile","shader","renderer","vertexShader","replace","fragmentShader","treesMesh","object","material","_this3","landMaterial","envMapIntensity","textureLand","grasslandMesh","_this4","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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"}
|
|
1
|
+
{"version":3,"names":["DoubleSide","MeshPhysicalMaterial","RepeatWrapping","SRGBColorSpace","TextureLoader","use","SeasonEnum","PresetValue","Spring","treeSize","landSnowSize","noGran","treeColor1","targetColor","changeColor","Summer","Autumn","Winter","Snow","Season","app","_classCallCheck","_defineProperty","init","_createClass","key","value","path","caseInstance","usePath","textureLoader","textureLeaf","load","concat","colorSpace","textureNoise","textureBole","uniforms","time","texture1","texture2","wrapS","wrapT","setSeason","type","_this","duration","arguments","length","undefined","haveSetMaterial","setLeafMaterial","setLandMaterial","setMassifMaterial","useframe","Object","keys","forEach","_this2","leafMaterial","map","alphaTest","roughness","metalness","emissive","side","transparent","depthWrite","onBeforeCompile","shader","renderer","vertexShader","replace","fragmentShader","treesMesh","object","material","_this3","landMaterial","envMapIntensity","textureLand","grasslandMesh","_this4","massifMaterial","textureMassif","massifMesh"],"sources":["../../../../src/module/environment/season/index.ts"],"sourcesContent":["import type { Material, Texture } from '@anov/3d-core'\nimport { DoubleSide, MeshPhysicalMaterial, RepeatWrapping, SRGBColorSpace, TextureLoader, 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.colorSpace = SRGBColorSpace\n this.textureNoise = textureLoader.load(`${path}season/T_TileNoise.png`)\n this.textureNoise.colorSpace = SRGBColorSpace\n this.textureBole = textureLoader.load(`${path}season/Image_tree3.png`)\n this.textureBole.colorSpace = SRGBColorSpace\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.
|
|
3
|
+
"version": "0.0.268",
|
|
4
4
|
"description": "",
|
|
5
5
|
"author": "",
|
|
6
6
|
"license": "MIT",
|
|
@@ -26,8 +26,8 @@
|
|
|
26
26
|
"rxjs": "7.8.1",
|
|
27
27
|
"three-mesh-bvh": "0.7.5",
|
|
28
28
|
"uuid": "^9.0.1",
|
|
29
|
-
"@anov/3d-
|
|
30
|
-
"@anov/3d-
|
|
29
|
+
"@anov/3d-core": "^0.0.66",
|
|
30
|
+
"@anov/3d-ability": "^0.0.120"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
33
|
"@types/uuid": "^9.0.7",
|