计算机图形学
文章平均质量分 66
GarFe-Liu
一入IT深似海,程序猿、攻城狮、努力一把架构师,经理干一条,总监搭台子,技术远景CTO
展开
-
(十五)计算机图形学 之 GrabPass截屏、Shader组织优化
1:使用抓屏通道,GrabPass 1) 或 GrabPass{“纹理名称n;GrabTexture方问2:后续的Pass通道使用这个抓屏:3:编写案例(1):创建一个顶点片元着色器:(2):将这个着色器放到overlav队列(3):使用GrabPass通道截屏,并定义好变量来接收(4):设置顶点的Uv坐标;(5):着色使用截图的纹理在Tags中添加 渲染队列 ,保证该物体最后在绘制然后添加Grabpass{} 截屏通道 默认使用 _GrabTexture。原创 2023-04-20 23:30:49 · 369 阅读 · 0 评论 -
(十四)计算机图形学 之 Shader 渲染通道常用指令(混合模式、Alpha测试、深度测试、通道遮罩、面剔除)
1:在所有计算完成后,决定当前的计算结果输出到帧缓冲区时,如何混合源和目标,通常用来绘制半透明的物体;原创 2023-04-20 00:16:03 · 892 阅读 · 0 评论 -
(十三)计算机图形学 之 Shader LOD与渲染队列
1:LOD (Level of Detail),根据LOD来设置使用不同版本的Shader;2:着色器中给SubShader一个LOD值,个LOD值,程序来设置这 个shader的LOD值,只有第一个小于等于LOD值subShader才会被执行;3:每个shader最多只会有一个SubShader被使用;4:通过Shader maximumLoD来设置最大的LOD值;5:设置全局的LOD值,Shader.globalMaximumLOD;原创 2023-04-19 00:18:03 · 529 阅读 · 0 评论 -
(十二)计算机图形学 之 Shader 基础知识及结构 (表面着色器)
1:#pragma surface 入口函数名称 光照模型 [Options]2:suface 后面跟 表面着色的入口函数 surf(nput IN, inout SurfaceOutput o);原创 2023-04-13 23:08:18 · 483 阅读 · 0 评论 -
(五·三)计算机图形学 之 Unity顶点片元Shader实例
写Shader没有调试也没有日志,只能靠细心,一点一点慢慢写,先从简单开始写,慢慢调试深入,要对shader中的函数和结构体用法清晰,如果有对这些方面(特别是使用Unity自带结构体时,出现问题,一定要查看Unity自带的cg文件,看是否使用出错),cg文件目录:Unity --> Edit --> Data --> CGlncludes --> UnityCG.ceinc 文件。SinTime: t 是时间的正弦值,4个分量分别是 (t/8,t/4,t/2,t;3:float3是内置向量(x,y,2);原创 2023-04-13 00:33:38 · 284 阅读 · 0 评论 -
(五·二)计算机图形学 之 Unity代码调用Shader并修改属性值
Color是在shader中,Properties{}里定义好的属性,名称要一直,然后就是给他赋值。我这里使用material.SetColor("_Color", Color.red);这里注意的是,要先给脚本绑定(关联)好材质球(Material)。结构是SetColor(shader属性名称,属性值设置);原创 2023-04-11 22:46:49 · 2849 阅读 · 0 评论 -
(五·一)计算机图形学 之 Unity Shader的CG基本语法
1:语法和C语言类是,有对应的编译器,程序是给显卡运行;2:可以从渲染流水线中获得对应的输入;3:指定的输出能流入下一个流水线模块;4:操作符号和C语言一样,可以使用+,-*/,原创 2023-04-09 23:44:00 · 416 阅读 · 0 评论 -
(十一)计算机图形学 之 Shader2.0 之 屏幕后期特效原理(高斯模糊)
MonoBehaviour 生命周期中 的 OnRenderImage 回调。mat : 用哪个 材质球 重新渲染 返回给 sourceTexture。desTexture: 更改以后的图片 存在这里 重新交给引擎。第二步: 将 图片 传递给 shader 进行 二次计算。sourceTexture : 拦截 相机渲染出来的图片。第一步 : 引擎 渲染完成后 最终的结果是 一张图片。提示: C# 代码 必须挂在 Camera 上。场景渲染完成后 在 添加一些 特效。简单高斯模糊 shader 代码。原创 2023-03-29 00:31:49 · 143 阅读 · 0 评论 -
(十)计算机图形学 之 Shader2.0 outline (轮廓 描边)
1. 直接 渲染两个 物体,(一个大 一个小,大的是轮廓 直接返回颜色,小的是实际图片颜色)2. 渲染物体轮廓 (第一步:找到轮廓 ,第二步:给边缘着色 ,第三步:非边缘正常纹理采样)需要法线知识(越到边缘 与 视角的法线 的夹角越小)原创 2023-03-29 00:25:33 · 198 阅读 · 0 评论 -
(九)计算机图形学 之 UV 动画 Loading旋转
angle : 旋转的角度 (时间 跟 速度决定)tmpUV : 是 当前要旋转的 物体 uv。围绕z轴旋转 上图 (1)的代码实现。finalUV: 旋转结果 存储。1.纹理旋转,UV旋转起来。2.UV 使用 矩阵旋转。1. 物体平移到原点。原创 2023-03-29 00:19:54 · 251 阅读 · 0 评论 -
(八)计算机图形学 之 Shader2.0 河流
Clamp : 表示 UV坐标 超过1 永远取值 1地方的像素,如果 UV 比 0 小的 永远取值 0 地方的像素。例如 UV 1.5 取值为 0.5 , UV 2.3 取值 为 0.3 , UV 3 取值 为 0;Repeat : 表示 UV 超过 1 的 取小数部分 跟 【0,1】(重置获取像素)例如 UV -1 取值 为0 , UV 1.5 取值 为 1。i.uv : 表示比例 UV坐标(2维坐标)。需要 河流模型 fbx 和 河流贴图。让 纹理 滚动起来 (不是让模型动起来)原创 2023-03-29 00:15:00 · 178 阅读 · 0 评论 -
(七)计算机图形学 之 Shader2.0 波动
例如 _Time.y Color.rgb Col.x Vector.x 等如此使用。θ : 决定波形 与 x轴位置关系或者横向移动距离 (左加右减)Shader2.0 对 property 变量 需要引用。ω : 决定周期(最小真正周期 T = 2π/|ω|)shader2.0 使用时需要再次定义 引用才可用。_Time : 表示 时间 周期、(4维数组)A : 决定峰值(纵向拉伸压缩的倍数)1. 计算顶点 位置。原创 2023-03-29 00:04:17 · 123 阅读 · 0 评论 -
(六)计算机图形学 之 Shader2.0 矩阵变换
规律 : 首先 将 物体坐标系 变换 到 世界。第一步 将 物体坐标系 转换到 世界 坐标系。第二步 将 世界坐标 转换 到 相机坐标系。P(世界) = M(物体到世界)*P(物体)P(相机) = M(世界到相机)*P(世界)Unity3d 里面 矩阵是左乘。1. 计算顶点的位置变换。2.计算顶点的颜色。原创 2023-03-28 23:59:00 · 148 阅读 · 0 评论 -
(五)计算机图形学 之 Shader 2.0 结构 与 语义(顶点片元着色器)
TEXCOORD (n 也称UV): 高精度的 从 顶点传递信息 到 片段着色器。#pragma vertex vert // 定义一个顶点着色器的 入口函数。#pragma fragment frag // 定义一个片段着色器的 入口函数。SV_POSITION: 表示 已经经过 mvp 矩阵 转换到 屏幕坐标的位置。COLOR: 低精度 从顶点传递信息 到 片段着色器。v2f : 顶点着色器的 输出值 片段着色器的 输出值。POSITION: 获取模型顶点的信息。原创 2023-03-28 23:58:45 · 184 阅读 · 0 评论 -
(四)计算机图形学 之 Shader 纹理寻址(片段着色器)
combine Texture * Primary : 表示 两个 像素的 乘法 // (1,0,0.1) (0.5,0,0,1)t 是 src2的alpha[0,1] A 是 src1 B 是 src3。shader 1.0 支持所有显卡(能用1.0写的shader 用1.0写比较好)(1-t)A+tB 插值运算 // lerp 运算公式(原理)混合的方式 取决于 src2 的 alpha 值。表示一个固定的颜色。表示 顶点计算出来的颜色。原创 2023-03-28 23:49:46 · 150 阅读 · 0 评论 -
(三) 计算机图形学 之 Shader 定义 (顶点 着色器)
Tlilnear: 就近 周围 8个像素的平均 (左上+上+右上+右+右下+下+左下+左+中)/9。Bliinear: 就近 周围 4个像素的平均 (上+中+下+左+右)/5。处理也可用 Unity提供的 Filter Mode选项里的解决该问题。(纹理就是贴图图片,显示区域是要放置材质球的物体 例如Culb)显示区域 100*100 纹理大小 100*100。显示区域 100*100 纹理大小 1024*512。= 1/1.0/2: 默认值。决定材质 跟灯光的作用。原创 2023-03-28 23:43:28 · 1074 阅读 · 0 评论 -
(二) 计算机图形学 之 Shader 结构
fixed shader: shader1.0 开关式 (shader已经开发完成,只需打开就可使用,不打开就不使用)顶点 片段着色器: shader2.0 (功能里面的公式 用户可以自定义,不仅可以使用开关式)surface shader: Unity自带的(也是shader1.0和2.0的封装)非常强大。CG 和 HLSL 包括在 CGPROGRAM ... ENDCG 语法块。cg:微软 和 英伟达 联合研发,跨平台,性能非常好,基于C语言。opengl: SGI公司研发,跨平台。原创 2023-03-28 23:28:53 · 198 阅读 · 0 评论 -
(一)计算机图形学 Opengl渲染流程
顶点着色器 - 光栅化 - 片段着色器 - alpha测试 - 模板测试 - 深度测试 - blend - Gbuffer - frontBufffer - frame Brffer - 显示器。FrameBuffer同样也会只写入GBuffer的RGBA,推到显示器显示,之后退到后台变为FrontBuffer。GBuffer选出来的像素,FrontBuffer只写入GBuffer的RGBA,推到显示器显示,之后退到后台变为FrameBuffer;(满足Alpha的选出来显示,不符合的丢掉不显示)原创 2023-03-28 23:01:02 · 695 阅读 · 0 评论