WebGL 光照渲染立方体

优质
小牛编辑
125浏览
2023-12-01

本节课对WebGL光照的介绍主要目的是让你对WebGL光照,以及如何在代码层面实现WebGL光照算法有个大致的轮廓认知,计算机图形学中关于光照相关算法的介绍更为详细和系统,如果有兴趣可以阅读计算机图形学的书籍。

光线照在物体上,物体反射光线就会构成一个光场,眼睛看到生活中的物体有立体感就是因为有光的存在。因此在学习物理光学在WebGL编程中如何应用, 你就要先了解基本的光学知识。

生活中你看到一个红色立方体,从宏观的角度来看你会描述他是红色的,或者描述RGB值为(1,0,0)的立方体,这时候你要问自己一个问题, 如果呈现到眼睛中的红色平面图像,如果颜色是均匀的,你是否还有立体的感觉。换句话说就是如果把你看到的立方体图像分割成一个个像素单位, 那么每一个像素的RGB值都是(1,0,0)的话你是否有立方体的空间感,从前面课程的实验可以知道,是没有任何空间感的。 那就说明一个问题实际上在自然界中你看到的物体图像,如果看做一个光场,它就是一个变化的光场,并不是每个像素都是(1,0,0)。 这很好理解,抛开专业的物理光学不谈,其实生活中你会发现,比如太阳光照射到一个物体上,不同的面与光的角度不同,反射的到眼睛中的结果不同, 向阳面亮,背光面暗,不同的面不同的颜色,分界位置就有棱角感。