一个简单的环境光shader
2024-08-30 23:42:51
关于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/
最新文章
- @OutputCache 详解-文章目录
- 根据日期查询access数据库
- java注解框架
- .NET开源工作流RoadFlow-流程设计-流程步骤设置-基本设置
- thymeleaf中的内联[ [ ] ]
- ACM——A + B Problem (4)
- HDU-2548 两军交锋
- SpringMVC11文件上传
- 绘图时,根据size()和自定义rect编程的区别
- next数组
- LeetCode 598. Range Addition II (范围加法之二)
- ios怎么推断日期是周末?
- (二叉树 BFS) leetcode993. Cousins in Binary Tree
- Spark-RPC理解
- windows如何查看电脑开关机记录
- @RequestParam使用须知
- Java(20~24)
- 【android】adb常用命令
- 10.30 开课一个月零二十六天 (PHP数据库修改)
- CSS line-height应用
热门文章
- [译]TLS中的RC4被攻破了,现在该怎么办?
- 十天学会单片机Day6 学会看数据手册 (IIC总线PCF859芯片( A/D D/A)应用)
- spring beans 源码解读
- UI 设计中的视觉无障碍设计
- CaptureMouse/CaptureStylus 可能会失败
- pat甲级 1152 Google Recruitment (20 分)
- 从数据库导出数据到excel之List<;List<;Object>;>;导出
- ffmpeg hls 点播负载均衡简单实现
- (转)Android性能优化——工具篇
- 关于adb devices连不上手机的几种情况