
Shader
文章平均质量分 81
IT界的卡卡西
更多精彩内容,请搜索微信公众号:游戏开发之旅
展开
-
表面着色器(Surface Shader)的写法(一)
一、表面着色器的标准输出结构(Surface Output) 要书写Surface Shader,了解表面着色器的标准输出结构必不可少。此为表面着色器书写的第一个要素。而定义一个“表面函数(surface function)”,需要输入相关的UV或数据信息,并在输出结构中填充SurfaceOutput。SurfaceOutput基本上描述了表面的特性(转载 2017-08-15 15:16:39 · 1028 阅读 · 0 评论 -
VS2017+OpenGL环境的配置
旧版本 固定管线 也是资料最多的OpenGL】我的工具是VS20171.方法(下载各种库文件)下载OpenGL的所需要的文件http://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip然后得到5个文件:glut.dll glut32.dll glut.lib glut32.lib glut.h找到目录..\VC\Tools\MS...原创 2018-03-16 13:42:58 · 1834 阅读 · 1 评论 -
OpenGL教程 用2D图形介绍OpenGL
OpenGL教程用2D图形介绍OpenGL1.设置OpenGL要设置OpenGL,取决于您的编程平台,请阅读:如何在C / C ++中编写OpenGL程序。如何在Java中编写OpenGL程序:JOGL或LWJGL。如何在Android中编写OpenGL | ES程序。1.1示例1:设置OpenGL和GLUT(GL01Hello.cpp)确保您可以运行GL01Hello.cpp“ 如何使用C / ...翻译 2018-03-08 13:54:49 · 6185 阅读 · 1 评论 -
Unity中的Shader(HSV,RGB转换)
//RGB转换:http://www.easyrgb.com/en/math.php#text22Shader "HSVShader/ColorGradation_HSV" { Properties { //贴图 _MainTex ("MainTex (RGB)", 2D) = "white" {} //Hue的值范围为0-359. 其他两原创 2018-02-06 23:04:26 · 2652 阅读 · 1 评论 -
Shader屏幕后處理效果
Shader屏幕后處理效果邊緣檢測:边缘检测的原理是利用一些边缘检测算子对图像进行卷积操作(卷积操作就是使用一个卷积核对一张图像的每一个像素进行一系列的操作,倦急核通常是一个四方形网格结构,例如2x2,3x3的方形区域,该区域内每个方格都有一个权重值。当对图像中的某个像素进行卷积时,我们会把卷积核的中心放置在该像素上,如下图,翻转之后再依次进行计算核中的每个元素和其覆盖的图像像素值的乘原创 2017-12-23 20:08:17 · 886 阅读 · 0 评论 -
Shader实例(流光实现)
Shader实例(流光实现)流光效果首先来看一下流光效果。流光效果是一个非常常见的效果,不仅仅是游戏,一些广告之类的也都会有这种效果。流光的原理还是比较简单的:首先就是需要一张流光图,这张流光图的大部分都是黑色,然后有一条亮线,然后我们在采样的时候,最终输出叠加上这张图的采样值,并根据时间调整采样的UV就可以有流光的效果啦。下面是一个比较简单的流光效果实现:原创 2017-12-22 09:23:13 · 4258 阅读 · 0 评论 -
shader实例(三)物体描边
Shader "Custom/OutLine_1" {Properties {_MainTex("Texture", 2D) = "white"{}_LineSize("OutlineSize", range(0, 0.2)) = 0.02_LineColor ("LineColor", Color) = (0,0,0,1)}SubShader {Pass{...转载 2017-10-20 16:31:30 · 833 阅读 · 0 评论 -
Shader实例:高级纹理应用
Shader实例:高级纹理应用首先说下CubeMap的几种制作方式:第一种方法:就是提供一张具有特殊布局的纹理(如:立方体展开贴图交叉布局,全景布局等)用的时候把Texture Type设置成Cubemap(优点:这种方法可以对纹理数据进行压缩,而且可以支持边缘修正,光滑反射和HDR等功能);第二种方法:先创建一个CubeMap,然后赋予6张贴图;第三种方法:这种方法比较灵活,原创 2017-11-24 15:13:09 · 530 阅读 · 0 评论 -
Shader经验分享
流水线1.应用阶段:(CPU)输出渲染图元,粗粒度剔除等 比如完全不在相机范围内的需要剔除,文件系统的粒子系统实现就用到粗粒度剔除。2.几何阶段:(GPU)把顶点坐标转换到屏幕空间,包含了模型空间 到世界空间 到观察空间(相机视角view) 到齐次裁剪空间(投影project2维空间,四维矩阵,通过-w到归一化设备坐标NDC(四维矩阵通过齐次除法,齐次坐标的w除以xyz实现归一化)转载 2017-08-30 14:39:36 · 1349 阅读 · 0 评论 -
shader实例(四)物体描边【自发光】
经过一段时间的慢慢学习,感觉着色器真的非常神奇。上一篇的描边是通过获取模型的顶点信息,根据法线来扩大模型,然后关闭深度缓存来给原模型模拟一个描边的效果。下面是通过模型的自发光再根据初中的数学知识实现我们想要的描边效果。首先看示意图:1。【思路】:面向摄像机的物体,它的表面法线【normal】和视角向量【viewDir】的【夹角】越靠近边缘就越大。那么就可以根转载 2017-10-20 16:34:34 · 1939 阅读 · 0 评论 -
UnityShader实例06:UV动画
UV动画UV动画,顾名思义,就是针对UV做的动画。在游戏中,一些动态水面,飞流直下的瀑布,流动的岩浆,跳动的火焰等等,很多都是通过操作UV做的动画。在unity中我可以实用挂载脚本或者直接针对UV key动画帧做动画操作,而在本文中将通过shader编写实现三个比较常见的UV动画方式:1.UV位移动画2.UV序列帧动画3.UV旋转动画转载 2017-10-27 17:07:43 · 936 阅读 · 0 评论 -
shader实例(五)GrabPass捕捉屏幕纹理
shader实例(五)GrabPass捕捉屏幕纹理 1.固定管线版本:Shader "Custom/Grab" { Properties { //_MainTex ("Base (RGB)", 2D) = "white" {} } SubShader { // 在所有不透明对象之后绘制自己,更加靠近屏幕 Tags { "Queue" = "Transparent" }翻译 2017-10-21 12:53:08 · 1546 阅读 · 0 评论 -
shader实例(二)色彩融合之地球仪
结合前面的UV动画,控制白云的颜色并与地球的材质融合,形成一个带有白云的地球仪效果,原理都写在注释里了。Shader "Custom/my1" { Properties { _MainTex ("Base (RGB)", 2D) = "white" {} _Cloud("_Cloud", 2D) = "white" {} } SubShader { Tags{转载 2017-10-20 14:36:13 · 1003 阅读 · 0 评论 -
shader实例(一)UV动画
以下是使用unity推崇的方式编写的一个播放序列图的shader,因为是学习最初的思路来自其他网友。原理思路在代码中,这里就不描述了。Shader "Custom/my1"{Properties {_Color ("Main Color", Color) = (1,1,1,1)_MainTex ("Base (RGB) Trans (A)", 2D) = "wh...转载 2017-10-20 14:29:36 · 1399 阅读 · 0 评论 -
(一) 3D图形渲染管线
(一) 3D图形渲染管线(学习Shader的基础是计算机图形学) 正文 什么是渲染(Rendering) 渲染简单的理解可能可以是这样:就是将三维物体或三维场景的描述转化为一幅二维图像,生成的二维图像能很好的反应三维物体或三维场景(如图1): 图1:Rendering 一.顶点翻译 2017-08-15 20:37:03 · 1882 阅读 · 0 评论