傍晚不咳嗽

有诗云清明时节雨纷纷,先前看天气预报说是清明前后没有雨的,不期时节将近,又忽然改口预报说是百分之七、八十的概率要下雨。所谓的靠不住,不单单是生活和人心,就连老天爷也是难以言说的。
这时候天阴了,加上沙尘悬浮在空中,仿佛废土末日。只要心中有阳光,生活就不灰暗。但是我的咳嗽却一直不好。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以用three.js实现类似游戏原神中的天空随时间变化的效果。一个简单的实现方式是通过修改天空盒的颜色来模拟日出、日落和星空等效果。下面是一个实现的示例代码: ```javascript // 创建一个立方体纹理,并将其用作天空盒 const cubeTexture = new THREE.CubeTextureLoader() .setPath('textures/skybox/') .load(['px.jpg', 'nx.jpg', 'py.jpg', 'ny.jpg', 'pz.jpg', 'nz.jpg']); scene.background = cubeTexture; // 创建一个着色器材质 const skyboxMaterial = new THREE.ShaderMaterial({ uniforms: { // 将天空盒纹理传递给着色器 skybox: { value: cubeTexture }, // 定义时间变量 time: { value: 0 }, // 定义日出、日落和星空时的颜色 sunriseColor: { value: new THREE.Color(0xffa1a1) }, sunsetColor: { value: new THREE.Color(0xffdbb4) }, starColor: { value: new THREE.Color(0xffffff) } }, vertexShader: ` varying vec3 vWorldPosition; void main() { vec4 worldPosition = modelMatrix * vec4(position, 1.0); vWorldPosition = worldPosition.xyz; gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0); } `, fragmentShader: ` uniform samplerCube skybox; uniform float time; uniform vec3 sunriseColor; uniform vec3 sunsetColor; uniform vec3 starColor; varying vec3 vWorldPosition; void main() { vec3 direction = normalize(vWorldPosition); // 计算日出、日落和星空时的颜色 vec3 skyColor = vec3(0.0); if (direction.y > 0.0) { skyColor = mix(sunriseColor, sunsetColor, direction.y); } else { skyColor = starColor; } // 在片元着色器中通过时间和方向计算出天空盒的颜色 vec4 color = textureCube(skybox, vec3(direction.x + time * 0.1, direction.yz)); gl_FragColor = vec4(skyColor * color.rgb, color.a); } ` }); // 创建一个天空盒网格,将着色器材质应用于其材质 const skyboxGeometry = new THREE.BoxGeometry(1000, 1000, 1000); const skybox = new THREE.Mesh(skyboxGeometry, skyboxMaterial); scene.add(skybox); // 在动画循环中更新时间变量 function animate() { const time = new Date().getTime() / 1000; skyboxMaterial.uniforms.time.value = time % 1000; // 根据时间计算日出、日落和星空时的颜色 const sunriseColor = new THREE.Color(0xffa1a1).lerp(new THREE.Color(0xfff7b3), time % 1000 / 1000); const sunsetColor = new THREE.Color(0xffdbb4).lerp(new THREE.Color(0x7d8cff), time % 1000 / 1000); skyboxMaterial.uniforms.sunriseColor.value = sunriseColor; skyboxMaterial.uniforms.sunsetColor.value = sunsetColor; renderer.render(scene, camera); requestAnimationFrame(animate); } animate(); ``` 在上面的代码中,我们在着色器材质中增加了日出、日落和星空时的颜色变量,并在片元着色器中根据方向计算出天空盒的颜色。在动画循环中,我们根据时间变化来计算日出、日落和星空时的颜色,并将其传递给着色器材质。这样就可以实现类似游戏原神中的天空随时间变化的效果了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值