文档章节

什么是Shader

Seven木
 Seven木
发布于 2016/01/28 16:37
字数 715
阅读 82
收藏 0

shader什么意思

  当初计算机刚诞生时,界面非常简陋,直到上个世纪 九十年代windows诞生后,才涌现了大量的电脑游戏,刚开始是二维游戏(2D game)居多,现在则绝大部分游戏都是三维(3D)的了。2D图形,就是无论你如何移动视角,地面上的建筑物、花草树木样子都不会变,而3D图形则不 同,随着视角的变换,你看到的物体也在变化,从正面变成侧面,越远的物体越小,越近的越大,与现实生活中人眼看到的情景非常相似。

  shader就是专门用来渲染3D图形的一种技 术,通过shader,程序设计人员可以自己编写显卡渲染画面的算法,使画面更漂亮、更逼真。几年前并没有shader这个东西,所以那时候的显卡,就不 支持shader,而只支持固定管线渲染,游戏画面也没有现在的酷。

  shader又分两种,一种是顶点shader(3D图形都是由一个一个三角形组 成的,顶点shader就是计算顶点位置,并为后期像素渲染做准备的),另一种是像素shader,像素shader顾名思义,就是以像素为单位,计算光 照、颜色的一系列算法。

  几 个不同的图形API有各自的shader语言
  在DirectX中,顶点shader叫做vertex shader,像素shader叫做pixel shader;
  在OpenGL中,顶点shader也叫做vertex shader,但像素shader叫做fragment shader。
  此外显卡芯片厂商nVidia还推出CG显卡编程语言,也支持 shader。

  shader 有很多不同的版本
  所以,即使你的显卡支持shader,但可能版本不够高,所以无法支持比较新的游戏使用的 shader。

  一般来说,大部分游 戏都支持不同版本的shader,为的是让尽可能多的机器都能运行,为此需要做很多额外的工作。

  除了显卡不够新之外,不同显卡厂商对shader的支持也不尽相同,所以同一个游戏,一样的 设置,在n卡和ATI的卡上,表现可能大不一样。

  另外,安装官方最新的驱动程序也是必要的。如果你安装了错误的驱动程序,甚至是随便从网上下载一个显卡驱动,那么即使你的显卡支持 shader,也可能跑不了需要shader支持的程序,包括但不限于网络游戏!

三个level:

显卡厂商(ATI, NVIDIA)提供硬件

图形API厂商 (MS DirectX, OpenGL)提供访问硬件的友好API

Dev使用API来进行图形编程 



转载自博客园《什么是Shader》



p.s. 另附上Unity自带Shader详解文档(来自CSDN) ,密码: x4ak

本文转载自:http://www.cnblogs.com/taoxu0903/archive/2010/05/13/1734724.html

Seven木
粉丝 0
博文 1
码字总数 0
作品 0
朝阳
私信 提问
高性能 img 标签--RedWebImage

RedWebImage Demo 演示 这是一个很有意思的项目,基于 WebGL 的滤镜系统,我们将使用 OpenGL ES 作为硬件加速,做一个高性能的 img 标签。你可以使用这个 img 标签完成非常多,非常炫酷的效果...

Redknot
2017/04/21
160
0
Material和Shader是什么,两者有什么关系?

Shader是Material的一部分。程序上是叫着色器,是根据计算 即时演算 生成贴图的程序。常常用来处理那些无法用固定贴图表现的模型 ,比如玻璃,水面等等。实际上是一小段程序,它负责将输入的...

panpan123_
2018/02/28
0
0
cocos2dx(3.X)中使用shader

cocos2dx(3.X)中使用shader 标签: cocos2d-xshader 2016-07-20 12:12 2513人阅读 评论(0) 收藏 举报 分类: OpenGL(10) 版权声明:本文为博主原创文章,未经博主允许不得转载。 目录(?)[+...

panpan123_
2017/11/02
0
0
材质的理解

shader:被翻译为着色器。是用来渲染画面的算法代码片断。分为顶点着色器和像素着色器。编写shader,需要用到shader语言,dx是hlsl,gl是glsl, nvida是cg。 顶点着色器(vertex shader):把...

yintao
2016/04/07
26
0
Unity3D Shader 学习笔记(一):初识Shader

第一节:图形处理器简史 GPU发展简史 GPU英文全称Graphic Procssing Unit。 T&L变换和光照流水线 可编程GPU GPU的优点和缺点 第二节:Unity Shader Shader和渲染管线 什么是shader 中文翻译是...

CacheCat
01/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Redis缓存穿透、缓存雪崩和缓存击穿

Redis缓存穿透、缓存雪崩 缓存雪崩,是指在某一个时间段,缓存集中过期失效。 产生雪崩的原因之一,比如在写本文的时候,马上就要到双十二零点,很快就会迎来一波抢购,这波商品时间比较集中...

architect刘源源
14分钟前
1
1
ArrayList源码分析

一、核心变量 // 序列化ID private static final long serialVersionUID = 8683452581122892189L; // 默认初始化容量 private static final int DEFAULT_CAPACITY = 10; ......

星爵22
23分钟前
1
0
++a a++的再次理解

public class Test { //// public static void main(String[] args) throws InterruptedException { // TODO Auto-generated method stub int a=1; int b=2; int c; int d; c=......

南桥北木
23分钟前
0
0
整合Spring和SpringMVC

1.Spring容器和SpringMVC容器的关系 Spring容器是一个父容器,SpringMVC容器是一个子容器,它继承自Spring容器。因此,在SpringMVC容器中,可以访问到Spring容器中定义的Bean,而在Spring容器...

薛小二
23分钟前
0
0
递归实现后序遍历二叉树

问题描述 从键盘接受输入先序序列,以二叉链表作为存储结构,建立二叉树(以先序来建立)并对其进行后序遍历,然后将遍历结果打印输出。要求采用递归方法实现。 解题思路 递归实现 程序实现 ...

niithub
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部