首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
webgl自学笔记——光照
】的更多相关文章
webgl自学笔记——光照
在Webgl中我们使用顶点着色器和片元着色器来为我们的场景创建光照模型.着色器允许我们使用数学模型来控制如何照亮我们的场景. 最好有线性代数的相关知识. 本章中: 光源.法线.材料 光照和着色的区别 Goraud Phong着色方法和Lambertian Phong光照模型 定义并使用uniforms.attributes.varyings 使用ESSL,webgl的着色器语言 讨论跟着色有关的webgl api 继续关于webgl是一个状态机的分析,描述跟着色器相关的可以从状态机中设置和取回的…
webgl自学笔记——几何图形
3D应用的基础元素: 1.canvas,它是渲染场景的占位符.标准html的canvas元素 2.Objects,这里指的是组成一个场景的所有3d实体.这些实体都由三角形组成.webgl中使用Buffer(vertex.index)来存储管理这些3d实体数据. 3.Lights,如果没有光照3d场景将看不到任何东西.webgl使用着色器来为场景中的光照建模.我们将会看到3d实体如何根据物理规律来反射和吸收光照,并讨论不同的光照模型. 4.Camera,摄像机作为3d世界的视口.我们通过摄像机来开…
webgl自学笔记——矩阵变换
这章主要探讨矩阵,这些矩阵代表了应用在我们场景上的变换,允许我们移动物体.然而在webGL api中并没有一个专门的camera对象,只有矩阵.好消息是使用矩阵来取代相机对象能让webgl在很多复杂动画中拥有更高的灵活性. 第四章中主要内容: 1.了解场景从3d世界到二维屏幕所经历的变换 2.学习仿射变换 3.将矩阵匹配到ESSL uniforms变量中 4.了解Model-View矩阵和透视投影矩阵 5.构造法线变换矩阵 6.创建一个相机对象使用它来旋转3d场景 WebGL中并没有一个可以操控…
webgl自学笔记——深度监测与混合
这一章中关于webgl中颜色的使用我们将深入研究.我们将从研究颜色在webgl和essl中如何被组装和获取开始.然后我们讨论在物体.光照和场景中颜色的使用.这之后我们将看到当一个物体在另一个物体前面是webgl如何来实现物体碰撞,这是通过深度检测来实现的.相反透明度混合允许我们结合所有物体的颜色当一个物体与另一个物体啮合时.我们将用透明度混合来创建透明物体. 这一章主要讨论: 在物体上使用颜色 为光源分配颜色 在ESSL中使用多光源 深度检测和z缓冲区 混合方法和公式 使用face cullin…
《Linux内核设计与实现》课本第四章自学笔记——20135203齐岳
<Linux内核设计与实现>课本第四章自学笔记 进程调度 By20135203齐岳 4.1 多任务 多任务操作系统就是能同时并发的交互执行多个进程的操作系统.多任务操作系统使多个进程处于堵塞或者睡眠状态,实际不被投入执行,这些任务尽管位于内存,但是并不处于可运行状态. 多任务系统分为两种: 抢占式多任务:Linux提供了抢占式的多任务模式,由调度程序来决定什么时候停止一个进程的运行. 现代操作系统提供:动态时间片计算的方式:可配置的计算策略 非抢占式多任务:除非进程自己主动停止运行,否则会一直…
《Linux内核设计与实现》课本第三章自学笔记——20135203齐岳
<Linux内核设计与实现>课本第三章自学笔记 进程管理 By20135203齐岳 进程 进程:处于执行期的程序.包括代码段和打开的文件.挂起的信号.内核内部数据.处理器状态一个或多个具有内存映射的内存地址空间或执行线程等其他资源. 线程:是在进程中活动的对象.每个线程都有一个独立的程序计数器.进程栈和一组进程寄存器.内核调度的对象是线程而非进程.操作系统中进程提供两种虚拟机制:虚拟存储器和虚拟内存. 程序:本身并不是进程,进程是处于执行期的程序以及相关的资源的总称.不同的进程可以执行同一个程…
《Linux内核设计与实现》课本第十八章自学笔记——20135203齐岳
<Linux内核设计与实现>课本第十八章自学笔记 By20135203齐岳 通过打印来调试 printk()是内核提供的格式化打印函数,除了和C库提供的printf()函数功能相同外还有一些资深的特殊功能 健壮性 在任何时候内核的任何地方都能调用printk()函数,只有在终端还未初始化的时候不能调用. 在中断上下文和进程上下文中被调用 在任何持有锁时被调用 在多处理器上同时被调用,并且不必使用锁. 解决办法是提供一个变体函数early _ printk(),但这种办法在某些硬件体系结构上无法…
python自学笔记
python自学笔记 python自学笔记 1.输出 2.输入 3.零碎 4.数据结构 4.1 list 类比于java中的数组 4.2 tuple 元祖 5.条件判断和循环 5.1 条件判断 5.2 循环 6.使用dict和set 6.1 dict 6.2 set 7.函数的使用 7.1函数返回多个值,同时接受多个值 7.2函数参数的默认值 7.3可变参数的函数 7.4可变个数带参数名的入参 7.5参数类型组合 8.关于函数递归 9.python的高级特性 9.1切片 9.2遍历 9.3列表生…
ssh自学笔记
Ssh自学笔记 Ssh简介 传统的网络服务程序,如:ftp.pop和telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,别有用心的人非常容易就可以截获这些口令和数据.而且,这些服务程序的安全验证方式也是有其弱点的, 就是很容易受到"中间人"(man-in-the-middle)这种方式的攻击.所谓"中间人"的攻击方式, 就是"中间人"冒充真正的服务器接收你传给服务器的数据,然后再冒充你把数据传给真正的服务器.服务器和你之间的数…
JavaScript高级程序设计之自学笔记(一)————Array类型
以下为自学笔记. 一.Array类型 创建数组的基本方式有两种: 1.1第一种是使用Array构造函数(可省略new操作符). 1.2第二种是使用数组字面量表示法. 二.数组的访问 2.1访问方法 在读取和设置数组的值时,要用方括号并提供相应值的基于0的数字索引: 2.2length属性 数组的项数保存在length属性中,这个属性始终返回0或者更大的值. 数组length属性不是只读的,通过设置这个属性,可以从数组的末尾移除项或者向数组中添加新项.看下面的例子: 三.转换方法 valueOf…