shader
面包大师
http://www.cnblogs.com/pkuoliver/archive/2010/10/27/Convert-m-number-to-n-number.html
展开
-
Shader编程学习笔记(一)—— 图形硬件简史与可编程管线
图形处理器(GPU)简史 GPU发展简史 GPU英文全称Graphic Processing Unit,中文翻译为“图形处理器”,在现代计算机系统中的作用变得越来越重要。 20世纪六、七十年代,受硬件条件的限制,图形显示器只是计算机输出的一种工具。限于硬件发展水平,人们只是纯粹从软件实现的角度来考虑图形用户界面的规范问题。此时还没有GPU的概念。 GP转载 2017-04-28 16:24:50 · 615 阅读 · 0 评论 -
猫都能学会的Unity3D Shader入门指南(二)
关于本系列这是Unity3D Shader入门指南系列的第二篇,本系列面向的对象是新接触Shader开发的Unity3D使用者,因为我本身自己也是Shader初学者,因此可能会存在错误或者疏漏,如果您在Shader开发上有所心得,很欢迎并恳请您指出文中纰漏,我会尽快改正。在之前的开篇中介绍了一些Shader的基本知识,包括ShaderLab的基本结构和语法,以及简单逐句地讲解了一个基本的s转载 2017-04-25 17:55:37 · 591 阅读 · 0 评论 -
基于Cocos2d-x学习OpenGL ES 2.0系列——你的第一个三角形(1)
前言 在本系列教程中,我会以当下最流行的2D引擎Cocos2d-x为基础,介绍OpenGL ES 2.0的一些基本用法。本系列教程的宗旨是OpenGL扫盲,让大家在使用Cocos2d-x过程中,知其然,更知其所以然。本系列教程不会涉及非常底层的数学原理,同时也不会过多地提及OpenGL本身的一些细节知识。但是我会在每篇文章的最后给出一些参考链接,大家可以顺藤摸瓜,一举Get OpenGL转载 2017-07-17 09:20:49 · 740 阅读 · 0 评论 -
基于Cocos2d-x学习OpenGL ES 2.0系列——编写自己的shader(2)
在上篇文章中,我给大家介绍了如何在Cocos2d-x里面绘制一个三角形,当时我们使用的是Cocos2d-x引擎自带的shader和一些辅助函数。在本文中,我将演示一下如何编写自己的shader,同时,我们还会介绍VBO(顶点缓冲区对象)和VAO(顶点数组对象)的基本用法。在编写自己的shader之前,我觉得有必要提一下OpenGL渲染管线。理解OpenGL渲染管线,对于学习Open转载 2017-07-17 09:21:46 · 676 阅读 · 0 评论 -
基于Cocos2d-x学习OpenGL ES 2.0系列——初识MVP(3)
在上一篇文章中,我在介绍vertex shader的时候挖了一个坑:CC_MVPMatrix。它其实是一个uniform,每一个Cocos2d-x预定义的shader都包含有这个uniform,但是如果你在shader里面不使用这个变量的话,OpenGL底层会把它优化掉。 但是,CC_MVPMatrix是在什么时候设置进来的呢?我在shader里面明明没有看到它,它从哪儿来的?别急,请继续转载 2017-07-17 09:22:42 · 668 阅读 · 0 评论 -
基于Cocos2d-x学习OpenGL ES 2.0系列——使用VBO索引(4)
在上一篇文章中,我们介绍了uniform和模型-视图-投影变换,相信大家对于OpenGL ES 2.0应该有一点感觉了。在这篇文章中,我们不再画三角形了,改为画四边形。下篇教程,我们就可以画立方体了,到时候就是真3D了。 为什么三角形在OpenGL教程里面这么受欢迎呢?因为在OpenGL的世界里面,所有的几何体都可以用三角形组合出来。我们的四边形也一样,它可以用两个三角形组合出来。转载 2017-07-17 09:23:33 · 508 阅读 · 0 评论 -
基于Cocos2d-x学习OpenGL ES 2.0系列——你的第一个立方体(5)
在上篇文章中,我们介绍了VBO索引的使用,使用VBO索引可以有效地减少顶点个数,优化内存,提高程序效率。本教程将带领大家一起走进3D--绘制一个立方体。其实画立方体本质上和画三角形没什么区别,所有的模型最终都要转换为三角形。同时,本文还会介绍如何通过修改MVP矩阵来让此立方体不停地旋转。另外,大家还可以动手去修改本教程的示例代码,借此我们可以更加深入地理解OpenGL的normal转载 2017-07-17 09:24:21 · 433 阅读 · 0 评论 -
基于Cocos2d-x学习OpenGL ES 2.0系列——纹理贴图(6)
在上一篇文章中,我们介绍了如何绘制一个立方体,里面涉及的知识点有VBO(Vertex Buffer Object)、IBO(Index Buffer Object)和MVP(Modile-View-Projection)变换。本文将在基于Cocos2d-x学习OpenGL ES 2.0系列——使用VBO索引(4)的基础之上,添加纹理贴图支持。最后,本文会把纹理贴图扩展至3D立方体上面。转载 2017-07-18 11:21:30 · 594 阅读 · 0 评论 -
基于Cocos2d-x学习OpenGL ES 2.0系列——OpenGL ES渲染之Shader准备(7)
Cocos2d-x底层图形绘制是使用OpenGL ES协议的。OpenGL ES是什么呢? OpenGL ES(OpenGl for Embedded System)是OpenGL三维图形API的子集,针对手机、Pad和游戏主机等嵌入式设备而设计。该API由Khronos集团定义推广,Khronos是一个图形软硬件行业协会,该协会主要关注图形和多媒体方面的开放标准。OpenGL ES是O转载 2017-07-17 09:26:08 · 438 阅读 · 0 评论 -
猫都能学会的Unity3D Shader入门指南(一)
动机自己使用Unity3D也有一段时间了,但是很多时候是流于表面,更多地是把这个引擎简单地用作脚本控制,而对更深入一些的层次几乎没有了解。虽然说Unity引擎设计的初衷就是创建简单的不需要开发者操心的谁都能用的3D引擎,但是只是肤浅的使用,可能是无法达到随心所欲的境地的,因此,这种状况必须改变!从哪里开始呢,貌似有句话叫做会写Shader的都是高手,于是,想大概看看从Shader开始能不能转载 2017-04-25 17:53:35 · 343 阅读 · 0 评论 -
Shader编程学习笔记(十)—— Cg语言入门2 - profile和基本数据类型
Cg入门二:profile和基本数据类型 上一小结我们了解了Cg的输入输出,输入使用“in”关键词,输出使用“out”关键词,既是输入也是输出则使用“inout”关键词;也了解了Cg基本的语义,顶点程序传递给片段程序的位置坐标使用“POSITION”语义,它不需要在片段程序中做特殊处理,图形硬件会自动针对“POSITION”数据进行处理。 本小结我们主要了解一下Cg的profi转载 2017-04-28 18:09:19 · 794 阅读 · 0 评论 -
Shader编程学习笔记(二)—— Shader和渲染管线
Shader和渲染管线 什么是Shader Shader,中文翻译即着色器,是一种较为短小的程序片段,用于告诉图形硬件如何计算和输出图像,过去由汇编语言来编写,现在也可以使用高级语言来编写。一句话概括:Shader是可编程图形管线的算法片段。 它主要分为两类:Vertex Shader和Fragment Shader。 什么是渲染管线 渲染转载 2017-04-28 16:48:07 · 478 阅读 · 0 评论 -
Shader编程学习笔记(三)—— 三大主流编程语言 HLSL/GLSL/Cg
三大主流编程语言 HLSL/GLSL/Cg Shader Language Shader Language的发展方向是设计出在便携性方面可以和C++、Java等相比的高级语言,“赋予程序员灵活而方便的编程方式”,并“尽可能的控制渲染过程”同时“利用图形硬件的并行性,提高算法效率”。 Shader Language目前主要有3种语言:基于OpenGL的OpenGL S转载 2017-04-28 17:30:48 · 461 阅读 · 0 评论 -
Shader编程学习笔记(四)—— Unity Shader的组织形式(ShaderLab)
Unity Shader的组织形式 Unity Shader的形态 Unity官方手册上讲Unity Shader有三种不同的编写方案,这三种编写方案分别是surface shaders、vertex and fragment shaders和fixed function shaders。 从前面几篇笔记中可以了解到,可编程图形管线中能够编写shader的主要是两个部分:转载 2017-04-28 17:59:04 · 382 阅读 · 0 评论 -
Shader编程学习笔记(五)—— Fixed Function Shader 1
Fixed Function Shader 在学习固定管线着色器中要涉及到的知识点是:PropertiesMaterialLightingSetTexturePass 首先来回忆一下ShaderLab的基本结构:shader "name"{ [Properties] SubShaders [FallBack]} 在shader主要的三转载 2017-04-28 17:59:49 · 426 阅读 · 0 评论 -
Shader编程学习笔记(六)—— Fixed Function Shader 2
Fixed Function Shader 在上一小节中我们已经了解到,Fixed Function Shader是固定功能的着色器,它的功能有限,但是编写比较简单,因为它总是通过一系列的命令达到我们对图形着色的目的。其中我们已经了解了Properties(属性)、Material(材质)、Lighting(光照),接下来来了解一下最为重要的一个命令settexture。 很多转载 2017-04-28 18:03:10 · 440 阅读 · 0 评论 -
Shader编程学习笔记(七)—— Surface Shader 1
Surface Shader 本小结对Unity的Surface Shader做一个大概的了解。主要了解在Surface Shader当中比较重要的几个部分,分别是:SurfaceOutputInputlighingshadow 首先查看一下Unity的官方手册中的Writing Surface Shaders,其中描述道:如果要编写一个shader去和光进行交互是转载 2017-04-28 18:05:11 · 385 阅读 · 0 评论 -
Shader编程学习笔记(八)—— Surface Shader 2
Surface Shader 上一小结主要了解了Surface Shader使用了“#pragma surface surf Standard fullforwardshadows”指令的意义,这一小节主要了解“surf”surface函数。void surf (Input IN, inout SurfaceOutputStandard o) { // Alb转载 2017-04-28 18:07:34 · 549 阅读 · 0 评论 -
Shader编程学习笔记(九)—— Cg语言入门1 - 输入输出和语义
Cg入门一:输入输出和语义 本小节对Cg语言进行一个入门了解。 在以前的课程中,我们了解了渲染管线、顶点和片段程序和颜色计算等,在本小结中来了解一个简单的shader的顶点和片段程序的输入输出以及常用语义。 编写一个简单的顶点和片段着色器,代码如下:Shader "Lesson/vertex&fragment"{ SubShader{转载 2017-04-28 18:08:33 · 853 阅读 · 0 评论 -
基于Cocos2d-x学习OpenGL ES 2.0系列——OpenGL ES渲染之LayerColor(8)
在前面文章中讲述了Cocos2d-x引擎OpenGL渲染准备Shader方面,本文主要讲解使用LayerColor来讲述OpenGL的渲染过程。1、LayerColor对象创建添加LayerColor元素到游戏中:auto layerColor = LayerColor::create(Color4B(255, 0, 0, 255), 100, 100); layerC转载 2017-07-18 11:36:05 · 543 阅读 · 0 评论