着色器语言GLSL学习

1 初步尝试

import {
    Scene, WebGLRenderer, OrthographicCamera, PlaneGeometry, ShaderMateria } from 'three.js'

const scene = new Scene()
const camera = new OrthographicCamera(-1,1,1,-1,0.1, 10)

const renderer = new WebGLRenderer()
renderer.setSize(window.innerWidth, window.innerHeight)
document.body.appendChild(renderer.domElement)

// 创建一个大小为2 的平面几何容器
const geometry = new PlaneGeometry(2,2)

// 设置着色器材质
const material = new ShaderMaterial()

// 创建网格对象 绘制平面
const plane = new mesh(geometry, material)
scene.add(plane)

//设置相机z轴以便能看到平面,注意范围为0.1 - 10,即远近裁截面
camera.position.z = 1 
renderer.render(scene, camera)

2 颜色随时间改变

const fragmentShader = {
   
	uniform float u_time;
	void main() {
   
		vec3 color = vec3((sin(u_time) + 1.0) /2.0, 0.0, (cos(u_time) + 1.0) /2.0);
		gl_FragColor = vec4(color, 1.0);
	}
}

const uniforms = {
   
	u_time: {
    value: 0.0 }
}

const clock =  new THREE.Clock()

function animate(){
   
	requestAnimation(animate)
	uniforms.u_time.value += clock.getDelta()
	renderer.
  • 7
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值