关于shader的一个简短的历史

在DirectX8之前,GPU有一个固定的方法去变换顶点和像素,称为“固定管线”。这使得在将它们传递给GPU后,开发者不可能操作顶点和像素的变换。

DirectX8介绍了顶点着色器和像素着色器,这使得在通过渲染管线时,开发者可以决定顶点和像素如何被处理,这给了开发者很大的灵活性。但是,编写一个着色器需要汇编语言,这又使开发者遇到了难处,而且,shader 1.0是唯一支持的一个版本。

这种情况在DirectX9发布后改变。DirectX9给了开发者使用HLSL开发shader的机会,HLSL语法类似于C语言,所以很容易。

Direct10介绍了一种新的shader,几何着色器,是shader 4.0的一部分。但它需要先进的显卡和Windows Vista。XNA支持shader1.0-3.0,工作在XP,Vista,Xbox360.

编写shader的一个重要的事实:大多数GPU不支持所有shader版本。一个shader应该有多种可选的方法实现某种特效,使得程序可以工作在更老的电脑。

顶点着色器(Vertex Shader)操作单个顶点。顶点着色器从在应用程序代码中定义的顶点结构体中获得顶点,从顶点缓冲区载入,将顶点传递给着色器。每个顶点包含的属性有:Position、Color、Normal、Tangent(切线)等等。顶点着色器将这些输出到之后要使用的像素着色器(Pixel Shader)。

坑....先

Note: 来自https://digitalerr0r.wordpress.com/2009/03/23/xna-shader-programming-tutorial-1-ambient-light/

最新文章

  1. @OutputCache 详解-文章目录
  2. 根据日期查询access数据库
  3. java注解框架
  4. .NET开源工作流RoadFlow-流程设计-流程步骤设置-基本设置
  5. thymeleaf中的内联[ [ ] ]
  6. ACM——A + B Problem (4)
  7. HDU-2548 两军交锋
  8. SpringMVC11文件上传
  9. 绘图时,根据size()和自定义rect编程的区别
  10. next数组
  11. LeetCode 598. Range Addition II (范围加法之二)
  12. ios怎么推断日期是周末?
  13. (二叉树 BFS) leetcode993. Cousins in Binary Tree
  14. Spark-RPC理解
  15. windows如何查看电脑开关机记录
  16. @RequestParam使用须知
  17. Java(20~24)
  18. 【android】adb常用命令
  19. 10.30 开课一个月零二十六天 (PHP数据库修改)
  20. CSS line-height应用

热门文章

  1. [译]TLS中的RC4被攻破了,现在该怎么办?
  2. 十天学会单片机Day6 学会看数据手册 (IIC总线PCF859芯片( A/D D/A)应用)
  3. spring beans 源码解读
  4. UI 设计中的视觉无障碍设计
  5. CaptureMouse/CaptureStylus 可能会失败
  6. pat甲级 1152 Google Recruitment (20 分)
  7. 从数据库导出数据到excel之List<List<Object>>导出
  8. ffmpeg hls 点播负载均衡简单实现
  9. (转)Android性能优化——工具篇
  10. 关于adb devices连不上手机的几种情况