渲染流水线 1)应用阶段(CPU处理) 首先,准备好场景数据(摄像机位置,视锥体,模型和光源等) 接着,做粗粒度剔除工作. 最后,设置好每个模型的渲染状态(使用的材质,纹理,shader等) 这一阶段最重要的是渲染所需要的几何信息,即渲染土元,渲染图元可以是点,线,三角面等. a.把数据加载到显存中 b.设置渲染状态,通俗说这些状态定义了场景中的网格是怎样被渲染的. c.调用DrawCall,一个命令,CPU通知GPU.(这个命令仅仅会指向一个需要被渲染的图元列表,并不会包含材质信息,因为在上一…
渲染流水线的起点是CPU,即应用阶段. 1)把数据加载到显存中 2)设置渲染状态,通俗说这些状态定义了场景中的网格是怎样被渲染的. 3)调用DrawCall,一个命令,CPU通知GPU.(这个命令仅仅会指向一个需要被渲染的图元列表,并不会包含材质信息,因为在上一阶段已经完成) CPU流水线 GPU从CPU那里得到渲染命令后,就会进行一系列流水线操作,最终把图元渲染到屏幕上. 几何阶段: 顶点着色器/曲面细分着色器/几何着色器 裁剪(Clipping):将不在视野范围内的顶点裁减掉,这阶段可配置的…
本笔记,是根据自己学习shader的笔记,主要是参照冯乐乐的<Shader 入门精要> 和游戏蛮牛shaderLad视频 和网上一些博客. 为啥要学习这个呐? 自己其实之前学过一段时间的shader,但是中间终止了.当时学的还挺多吧,算是有点基础. 但是有一点自己明白.shader学好,还关联3D数学,图形学的知识.刚好,自己这方面不足.再加上自己前些日子面试网易等 知名大公司,被打击的体无完肤,自己的确很多的不足,底子的确很不扎实. Shader,即着色器,与着色器相关联的是渲染流水线. 渲…
本笔记,是根据自己学习shader的笔记,主要是参照冯乐乐的<Shader 入门精要> 和游戏蛮牛shaderLad视频 和网上一些博客. 为啥要学习这个呐? 自己其实之前学过一段时间的shader,但是中间终止了.当时学的还挺多吧,算是有点基础. 但是有一点自己明白.shader学好,还关联3D数学,图形学的知识.刚好,自己这方面不足.再加上自己前些日子面试网易等 知名大公司,被打击的体无完肤,自己的确很多的不足,底子的确很不扎实. Shader难的原因? 牵扯到整个渲染流程,面向GPU编程…
本文编写一个计算两个数组和的程序,用CPU和GPU分别运算,计算运算时间,并且校验最后的运算结果.文中代码偏多,原理建议阅读下面文章,文中介绍了OpenCL相关名词概念. http://opencl.codeplex.com/wikipage?title=OpenCL%20Tutorials%20-%201  (英文版) http://www.cnblogs.com/leiben/archive/2012/06/05/2536508.html (博友翻译的中文版) 一.创建工程 按照OpenCL…
最近在照着<第一行代码>这本书来学安卓,顺便记下笔记.主要的内容是Android中服务的第二种启动方式,通过活动绑定服务来启动服务,实现活动与服务之间的通信. 一. 首先创建一个服务类 public class MyService extends Service{ private DownloadBinder mBinder=new DownloadBinder(); class DownloadBinder extends Binder{ public void startDownload(…
Unity中,Unity Shader 都是ShaderLab 来编写的.ShaderLab 是Unity提供的编写Unity Shader 的一种说明性语言. 1)Properties :定义了着色器所需要的各种属性.这些属性讲会出现在Inspector. 2) SubShader:每一个Unity Shader文件可以包含多个SubShader语义块,但最少要有一个. SubShader{ //可选的 [Tags] //[RenderSetUp] Pass{ } //Other Passes…
转自: http://gly199.iteye.com/blog/1056424 1.redis基本参数 redis的配置文件中的常见参数如下: daemonize   是否以后台进程运行,默认为no,一般需要改为yes pidfile 如以后台进程运行,则需指定一个pid,默认为/var/run/redis.pid bind 绑定主机IP,默认值为127.0.0.1 port 监听端口,默认为6379 timeout 超时时间,默认为300(秒),由于应用中使用了连接池,所以这里建议设置为0,…
js中window通常是全局变量 global 是node.js里的全局变量 node中能访问的对象一般都是 global的 属性 global 对象属性 process 用于描述当前Node 进程状态的对象,提供了一个与操作系统的简单接口. process.argv :命令行参数数组,第一个元素是 node,第二个元素是脚本文件名,从第三个元素开始每个元素是一个运行参数 console.log(process.argv); $ node argv.js name=byvoid --v "Car…
[TOC] 标识符 可用的字符 处理括号类字符,分隔符之外,其他所有的可打印的ASCII字符,如字母,数字,下划线和美元符号($)均可出现在Scala标识符中 插入符包括了(,) [,] {,and} 分隔符包括 ` ' " . ; ,等 Scala还允许在标识符中使用编码在 \u0020到\u007F之间的字符,如数学符号,想 / 和 < 这样的操作符字符以及其他的一些符号 不能使用保留字. 普通标识符 常见的标识符往往由字母或下划线开头,后面跟着一些字母,数字,下划线和$符 Scala…