
Shader
linuxheik
这个作者很懒,什么都没留下…
展开
-
VertexShader入门
VertexShader入门Shader与固定管线顶点着色(Vertex Shader)是一段执行在GPU上的程序(一般用HLSL来编写),用来取代fixed pipeline中的transformation和lighting,Vertex Shader主要操作顶点。有图则一目了然。Vertex Shader做了什么工作由上图知,Vertex Shader对输入转载 2017-08-21 09:41:43 · 7458 阅读 · 0 评论 -
Directx11基础教程三之VertexShader,PixelShader,buffer
一,看本节教程前应该掌握: (1)D3D11基础教程二之D3D11初始化 (2)了解3D渲染流水线的知识,如世界变换,相机变换,透视投影变换,视口变换,光栅化,线性插值,gouraud着色等,最好具备一定的图形学基础,我推荐一本书<3D游戏编程大师技巧>,这本书完整的讲解了3D渲染流水线的方方面面。二,本节教程的程序结构:三,VertexShader(顶点...转载 2018-10-22 20:36:49 · 536 阅读 · 0 评论 -
HLSL Introduction
By Chang Li High Level Shading Language (HLSL), a programming language for Graphic Processing Unit (GPU) in DirectX 9/10/11, supports the shader construction with C-like syntax, types, expressions...转载 2018-10-24 09:42:44 · 491 阅读 · 0 评论 -
DirectX11 高级着色器语言HLSL入门
高级着色器语言HLSL入门1. 数据类型简介与CPU不同,在显卡芯片中,最小的数据吞吐单元是一个由32位浮点数组成的四元组。这一点很有道理不是,想想你在渲染过程中所有涉及到的数据,最复杂的不外乎四维坐标(x,y,z,w)或颜色(r,g,b,a),这样GPU可以一次性处理一个四元组。而整数什么的在显卡中被放到四元组的一个分量里使用,而很多显卡中,整数、布尔值都不被直接支持,而是转为浮点数使用。至...转载 2018-10-24 09:44:09 · 841 阅读 · 0 评论 -
渲染设置系列6——ColorMask通道遮罩
ColorMask 可以指定渲染结果的输出通道,而不是通常的 RGBA 四个通道都被写入。可选参数为 RGBA 的任意组合以及 0如果参数为0,那么不会写入任何通道,但是会做一次深度测试,并将深度值写入深度缓冲区。 (这样就会有一个“挖空”后边物体的效果)ColorMask 0ColorMask RGAColorMask RBA...1234例如Tags{ "Qu...转载 2019-02-22 16:23:18 · 712 阅读 · 0 评论 -
Unity Shader-后处理:高斯模糊
一.简介上一篇文章学习了模糊的原理以及基本的模糊实现,对于清晰和模糊这个定义感觉还是比较说明问题,这里再贴出一下:“清晰的图片,各个像素之间会有明显的过渡,而如果各个像素之间的差距不是很大,那么图像就会模糊了”。鉴于这个定义,我们就可以通过代码来实现模糊的效果。上一篇Unity Shader-后处理:均值模糊中实现了一个基本的均值模糊,也就是将一个像素和其周围的像素取平均值从而进行模糊,并且通...转载 2019-02-25 14:52:17 · 286 阅读 · 0 评论 -
Unity Shader-后处理:径向模糊效果
简介游戏都追求画面感,个人感觉后处理是最能表现画面感的方法之一(虽然比较费)。之前玩了一阵子模糊效果,今天再来看一个模糊效果,径向模糊。这种效果对于画面感的提升非常有帮助,尤其是在快速运动突然加速的一瞬间,或者Boss出场狂吼一声的屏幕效果。于是我第一时间想到了《天涯明月刀》里面轻功飞起来加速的那一瞬间,径向模糊的使用,使轻功加速的画面感一下子就出来了。再比如《王者荣耀》里也有径向模糊的效...转载 2019-02-25 14:53:31 · 608 阅读 · 0 评论 -
UnityShader实例09:Stencil Buffer&Stencil Test
Stencil Buffer&Stencil Test在开始前先吐槽下unity的官方文档,说实话关于stencil ,官方文档真的是可以不要了,除了记流水账般解释了下各个参数的作用,作为例子的shader也是让人一头雾水,整个文档看下来,你发觉stencil是用来干嘛的,怎么操作,仍然不知道。好在unity的shaderlab 和D3D,OpenGL等shader语言是一致的,还可以...转载 2019-02-25 14:54:34 · 266 阅读 · 0 评论 -
【OpenGL】Shader实例分析(九)- AngryBots中的主角受伤特效
AngryBots是Unity官方的一个非常棒的例子,很有研究价值。以前研究的时候,由于其内容丰富,一时间不知道从哪入手写文章分析。这一段时间研究shader技术比较多一些,就从shader的这一方面开始吧。首先分析其中的一个屏幕特效:当主角受到攻击时会出现的全屏效果(postScreenEffect),效果如下: 其实这是一种的Bloom效果,相关文件有:MobileBloom.js ...转载 2019-02-25 14:55:44 · 309 阅读 · 0 评论 -
SaveRenderTextureToPNG保存贴图到本地
//将RenderTexture保存成一张png图片 public bool SaveRenderTextureToPNG(RenderTexture rt, string contents, string pngName) { RenderTexture prev = RenderTexture.active; RenderTexture.ac...转载 2019-02-25 14:57:24 · 1361 阅读 · 0 评论 -
关于unity shader的StencilBuffer
关于unity shader的StencilBuffer这几天学了unity shader,不得不说unity shader小小的选择项竟然蕴含了这么多东西,最近看到shaderlab 的stencil buffer真是搞得一头雾水,网上也没有对stencil在untiy 的介绍,有也是很简略的,圣典也还没翻译,就官网那几个字,真不知道写那个的人是怎么想的,就写那几个字怎么让人明白那怎么回事。好...转载 2019-02-25 14:59:54 · 446 阅读 · 0 评论 -
【UnityShader】模板Stencil测试
效果原理使用后处理,在后处理阶段先渲染产生一张RenderTexture,包含要被描边的物体,使用描边色渲染。高斯模糊RenderTexture,会产生边缘用高斯模糊的图片反向剔除未模糊的图,这样只保留模糊多出的部分。此时RenderTexture上为只有边缘的图,将此边缘图与渲染结果图进行混合并输出屏幕,即得到结果。实现OutLineCameraComponent.cs 挂...转载 2019-02-25 15:22:58 · 1089 阅读 · 0 评论 -
Unity Shader-描边效果
版权声明:欢迎转载,共同进步。请注明出处:http://blog.youkuaiyun.com/puppet_master https://blog.youkuaiyun.com/puppet_master/article/details/54000951简介描边效果是游戏里面非常常用的一种效果,一般是为了凸显游戏中的某个对象,会给对象增加一个描边效果。最近又跑回去玩了玩《剑灵》,虽然出了三年了,感觉在现在的...转载 2019-02-25 15:26:23 · 454 阅读 · 0 评论 -
Unity3D - Shader - 普通纹理
https://blog.youkuaiyun.com/biezhihua/article/details/78620157纹理基础概念纹理的目的:用于使用一张图片来控制模型的外观。纹理映射(texture mapping):可以把一张图黏在模型表面,逐纹素的控制模型的颜色。纹理映射坐标(UV坐标):纹理映射坐标定义了该顶点在纹理中对应的2D坐标,这些坐标使用二维变量(u,v)来表示,其中u代表...转载 2018-10-22 19:54:04 · 426 阅读 · 0 评论 -
OpenGL基础 - 统一变量Uniform 默认值
OpenGL基础 - 统一变量UniformSu Bill2 个月前OpenGL基础: Uniform变量 -- 即统一变量简单理解就是一个GLSL shader中的全局常量,可以随意在任意shader(vertex shader, geometry shader, or fragment shader)访问,不同的shader中uniform是一起链接的,初始化之后,不能修改其值,否则会引起编译...转载 2018-03-16 15:12:24 · 6366 阅读 · 0 评论 -
Directx11基础教程三之VertexShader,PixelShader,buffer
一,看本节教程前应该掌握: (1)D3D11基础教程二之D3D11初始化 (2)了解3D渲染流水线的知识,如世界变换,相机变换,透视投影变换,视口变换,光栅化,线性插值,gouraud着色等,最好具备一定的图形学基础,我推荐一本书,这本书完整的讲解了3D渲染流水线的方方面面。二,本节教程的程序结构:三,转载 2017-08-21 09:44:06 · 684 阅读 · 0 评论 -
OpenGL中shader使用
OpenGL中shader使用引自:http://blog.youkuaiyun.com/wl_soft50/article/details/7916720http://blog.sina.com.cn/s/blog_923fdd9b0102vbe0.html 与OpenGL ES1.x渲染管线相比,OpenGL ES 2.0渲染管线中“顶点着色器”取代了OpenGL转载 2017-08-21 09:48:38 · 2066 阅读 · 0 评论 -
OpenGL ES2.0教程:编写自己的shader(2)
原文:http://4gamers.cn/blog/2014/06/07/write-your-own-shader/在上篇文章中,我给大家介绍了如何在cocos2d-x里面绘制一个三角形,当时我们使用的是cocos2d-x引擎自带的shader和一些辅助函数。在本文中,我将演示一下如何编写自己的shader,同时,我们还会介绍VBO(顶点缓冲区对象)和VAO(顶点数组对象转载 2017-08-21 09:57:29 · 475 阅读 · 0 评论 -
渲染管线
前言在前2篇文章中,我们都说到着色器,且在第二篇中正式说到,这着色器只能用在OpenGL ES2.x等可编程管道里面,而在OpenGL ES1.x是不能用的。但我们一直没有说这是为什么,两者有什么区别。那这篇我们就一起来学习下OpenGL ES中的渲染管道。正文管道,英文名叫Pipeline,相信用过FaceBook图片加载库的同学对这个管道并不陌生,因为SimpleIma转载 2017-08-21 09:59:04 · 389 阅读 · 0 评论 -
Shader编程学习笔记(二)—— Shader和渲染管线
http://www.cnblogs.com/maple-share/p/5395097.htmlShader和渲染管线 什么是Shader Shader,中文翻译即着色器,是一种较为短小的程序片段,用于告诉图形硬件如何计算和输出图像,过去由汇编语言来编写,现在也可以使用高级语言来编写。一句话概括:Shader是可编程图形管线的算法片段。 它主要分为两类:Vertex转载 2017-08-21 10:02:57 · 319 阅读 · 0 评论 -
在OpenGL中,顶点着色器的输出是如何传递到片段着色器的?
在OpenGL中,顶点着色器的输出是如何传递到片段着色器的?我正在学习OpenGL,基本已理解管线原理,但是有一个问题一直没明白:我们知道顶点着色器可以传递变量到片段着色器,然而片段着色器和顶点着色器并不是1:1调用的。比如一个三角形有三个顶点,调用三次顶点着色器,三角形光栅话后会有很多的片段(插值的结果),每个片段都会调用一次片段着色器。那么问题来了,片段着色器的输入到底是处理哪转载 2017-11-27 14:33:31 · 2687 阅读 · 3 评论 -
贴图层OpenGL——glUniform1i 用法
[cpp] 1. 为了使用第二个纹理(以及第一个),我们必须改变一点渲染流程, 先绑定两个纹理到对应的纹理单元,然后定义哪个uniform采样器对应哪个纹理单元: 注意,我们使用glform1i设置uniform采样器的位置值,或者说纹理单元。 通过glUniform1i的设置,我们保证每个uniform采样器对应着正确的纹理单元。[cpp] view plain copy转载 2017-12-26 21:12:45 · 9789 阅读 · 0 评论 -
shader最后FallBack 很重要,但不知道原因,请指教!(颠覆认知)
大部分教材对于FallBack是这么解释的: 回退 (Fallback) 可定义在所有子着色器 (Subshader) 之后。大致来说就是“如果所有子着色器都无法在该硬件上运行,请尝试使用另一个着色器的子着色器”。 但事实是: 如果你新建一个最简单Shader,比如给Cube加上一张纹理图片,如果没有添加FallBack,则没有阴影!!! 如果自己写一个半透明物体的Shad转载 2018-01-08 14:45:16 · 4294 阅读 · 0 评论 -
Diffuse Shading
【Unity Shaders】Diffuse Shading——创建一个自定义的diffuse lighting model(漫反射光照模型)原创 2013年12月20日 15:01:4114581本系列主要参考《Unity Shaders and Effects Cookbook》一书(感谢原书作者),同时会加上一点个人理解或拓转载 2018-01-08 15:40:48 · 419 阅读 · 0 评论 -
阴影LightMode = ShadowCaster
阴影实现原理 使用Shadow Map技术。把摄像机与光源位置重合,光源的阴影部分就是摄像机看不到的地方。 前向渲染路径中,最重要的平行光如果开启了阴影,Unity就会为光源计算阴影映射纹理(shadowmap),本质就是深度图,记录光源出发到最近表面位置。两种方法: 1. 摄像机放在光源位置,然后按正常渲染流程(调用Base Pass 和 Additional P转载 2018-01-08 15:44:52 · 4704 阅读 · 0 评论 -
Unity Shader自定义光照模型
前几天去一家公司面试,因为简历上写着“能写简单的Shader”,就被问了一个问题:怎么自定义一个光照模型?直接懵逼了,隐隐约约能联想到的什么漫反射光+镜面反射光+环境光...难道是这个?光照模型就是#pragam surface surf Lambert里面的那个Lambert呗?这不都是写好的吗?还能自定义啊?!本着“程序是严谨的”的心态,宁可说不知道,也不能瞎说。。。今天有空,转载 2018-02-07 11:45:33 · 413 阅读 · 0 评论 -
Unity在运行时(代码中)设置材质的渲染模式(RenderingMode)
转载自博客园:牛俊为 在Unity中,有些少数情况下我们需要用代码来创建材质。比如说在材质非常多,而仅仅是纹理不一样的时候。而用代码创建的材质是没有对应的资源文件的,我们也就无法使用Inspector来设置它的Rendering Mode。 关于Rendering Mode,许我稍作介绍:材质(Material)的属性检视面板(Inspector)里的第一项为渲染模式(Re...转载 2019-02-21 11:56:17 · 3289 阅读 · 1 评论