
unity-shader编写需要储备的知识(1)
发布日期:2021-05-07 17:59:06
浏览次数:32
分类:精选文章
本文共 1023 字,大约阅读时间需要 3 分钟。
着色器(Shader)技术指南
1. 着色器类型
着色器可以分为三类:顶点片元着色器、表面片元着色器和固定管线着色器。
- 顶点片元着色器:主要用于修改模型形态,例如模拟波浪的水面。它通过调整顶点的坐标来实现效果。
- 表面片元着色器:专门用于像素级别的着色,例如为乌龟的表面添加光照纹理,营造水下游动的感觉。
- 固定管线着色器:将逐渐被淘汰的传统着色器类型,主要用于简单的图形渲染。
2. 显卡与图形渲染
显卡(GPU)是图形渲染的核心设备。图形数据通过CPU传输到GPU,经过处理后再显示在屏幕上。
- 渲染流程:图形数据 → 加载到GPU → 渲染 → 显示到屏幕。
- Shader程序:我们编写的顶点片元着色器和表面片元着色器,负责为每个像素赋予颜色和细节。
3. 相关知识
- 图形标准:不同显卡支持不同的图形标准(如DirectX、OpenGL)。驱动程序统一了这些标准,使不同显卡能够兼容。
- 着色器语言:
- HLSL:仅支持DirectX的着色器编写。
- GLSL:用于OpenGL的着色器编写。
- Cg:NVIDIA与微软合作开发,支持DirectX和OpenGL,广泛应用于游戏和视觉效果制作。
4. Shader编程结构
Shader程序通常包含以下结构:
- Properties:定义自定义属性,如颜色、纹理等。
- Subshaders:子着色器组,用于不同的渲染阶段。
- Passes:渲染通道,包括Regular Pass、UsePass和GrabPass。
- Regular Pass:普通渲染通道。
- UsePass:插入其他着色器的通道。
- GrabPass:捕获屏幕内容,用于特效和后期处理。
5. 常用类型
- Options:描述纹理属性,如纹理类型(1D、2D、3D等)。
- Sampler:用于纹理采样,表示纹理对象。
6. Unity坐标系
Unity使用自身坐标系进行渲染,开发者需进行转换。此外,Unity支持多种坐标系,如World Space、Object Space和Screen Space。
7. Cg语言语义修饰
Cg语言支持以下语义修饰:
fixed
:用于固定精度的颜色值。sampler
:表示纹理对象。
8. Cg语言基本类型表达式
- 定点数:用整数表示小数,适合高性能计算。
- Sampler:用于纹理采样,关联纹理或纹理对象。
9. 标准内置函数
Cg语言内置多种函数,如tex2D、pow、ceil等,支持丰富的图形操作。
发表评论
最新留言
关注你微信了!
[***.104.42.241]2025年05月06日 05时51分52秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Centos 7.5 新磁盘创建和挂载XFS文件系统
2023-01-26
Centos 7.5安装safe-rm,防止rm -rf /命令误删除文件
2023-01-26
CentOS 7.X 系统安装及优化
2023-01-26
Centos 7下安装php+mysql+nginx+wordpress教程新版
2023-01-26
CentOS 7之Postfix部署系列 (一) CentOS安装
2023-01-26
flask框架面向移动端的虚拟物品订购平台毕设源码+论文
2023-01-26
flask框架飞机订票管理系统(毕设源码+论文)
2023-01-26
flask框架餐饮管理系统毕设源码+论文
2023-01-26
flask框架高性能教学资源平台设计与实现(毕设源码+论文)
2023-01-26
flask框架高校助学及勤工俭学管理系统(毕设源码+论文)
2023-01-26
flask框架高校图书管理系统设计与实现(毕设源码+论文)
2023-01-26
flask框架高校招生预报管理系统(毕设源码+论文)
2023-01-26
flask框架高校教师个人数字档案(毕设源码+论文)
2023-01-26
flask框架高校毕业生选题系统(毕设源码+论文)
2023-01-26
flask框架高校竞赛信息管理系统(毕设源码+论文)
2023-01-26
flask框架魔方教学网站毕设源码+论文
2023-01-26
Flask解决跨域访问问题(Access to XMLHttpRequest at ‘http://127.0.0.1:500been blocked by CORS policy: No ‘Acc)
2023-01-26
Flatterer: 快速JSON转换工具使用指南
2023-01-26
Flex / PHP Security Basics - Part One
2023-01-26
FLEX 4 :选择本地文件编辑
2023-01-26