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 PassUsePassGrabPass
    • Regular Pass:普通渲染通道。
    • UsePass:插入其他着色器的通道。
    • GrabPass:捕获屏幕内容,用于特效和后期处理。

5. 常用类型

  • Options:描述纹理属性,如纹理类型(1D、2D、3D等)。
  • Sampler:用于纹理采样,表示纹理对象。

6. Unity坐标系

Unity使用自身坐标系进行渲染,开发者需进行转换。此外,Unity支持多种坐标系,如World SpaceObject SpaceScreen Space

7. Cg语言语义修饰

Cg语言支持以下语义修饰:

  • fixed:用于固定精度的颜色值。
  • sampler:表示纹理对象。

8. Cg语言基本类型表达式

  • 定点数:用整数表示小数,适合高性能计算。
  • Sampler:用于纹理采样,关联纹理或纹理对象。

9. 标准内置函数

Cg语言内置多种函数,如tex2Dpowceil等,支持丰富的图形操作。

上一篇:unity—shader简单编程(2)
下一篇:unity-阴影、烘培、光照贴图

发表评论

最新留言

关注你微信了!
[***.104.42.241]2025年05月06日 05时51分52秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章