
Shader
文章平均质量分 84
pizi0475
这个作者很懒,什么都没留下…
展开
-
处理交叉透明物体的渲染
Interactive Order-Independent TransparencyCass EverittNVIDIA OpenGL Applications Engineeringcass@nvidia.com (a)转载 2012-08-30 07:00:23 · 3255 阅读 · 0 评论 -
BillBoard shader实现
BillBoard shader实现 当前效果是Quad始终处于相机正前方,而不只是方向垂直。去掉m_vOffset就是一般意义上的billboard了。Vert程序 uniform mat4 g_WorldViewProjectionMatrix;uniform mat4 g_WorldMatrix;uniform mat4 g_ProjectionMatrix;转载 2012-08-30 07:12:56 · 3683 阅读 · 1 评论 -
Real-time rendering笔记
总过程The Application Stage、Geometry Stage和Raster Stage。 Geometry Stage包括Model/View Transform; Vertex shading(即通常意义上的根据物体材质逐顶点渲染,实际上大都放在了pixel shader阶段); Projection; Clipping; Screen mapping(产生像素转载 2012-08-30 07:13:50 · 2263 阅读 · 0 评论 -
边缘高亮效果
http://blog.youkuaiyun.com/xoyojank/article/details/1891820 游戏要实现模型的突出显示,最好是边缘高亮的效果.刚听到这个东西时,第一个进入头脑中的就是:边缘检测.于是就写了一个:Pass 0:渲染模型到一个RenderTarget Model上,并把模型的形状写入Alpha通道.Pass 1:对上面得到的A转载 2012-08-31 06:59:48 · 2400 阅读 · 0 评论 -
基于法线的边缘检测
http://blog.youkuaiyun.com/xoyojank/article/details/3422631在边缘高亮效果中我提到过两种方法, 各有优缺点吧 图像空间域的边缘检测效果比较好, 中间没有多余的线条. 缺点是PS中计算比较慢第二种把模型"放大"(其实是变胖)的做法, 可以在VS中完成, 不需要额外的RenderTarget, 适合低端显卡使用, 适应性好. 不如果模型法线转载 2012-08-31 07:01:52 · 2107 阅读 · 0 评论 -
Unity-水面效果的shader文件
[javascript] view plaincopyprint?Shader "FX/Water" { Properties { _WaveScale ("Wave scale", Range (0.02,0.15)) = 0.063 _ReflDistort ("Reflection distort", Range (0,1.5)) = 0.44 _RefrDisto转载 2012-08-30 07:14:39 · 9048 阅读 · 0 评论 -
高亮边缘效果
http://blog.youkuaiyun.com/xoyojank/article/details/6719837 之前的文章: 基于法线的边缘检测Dota2和Diablo3中的描边效果与其它游戏的不一样, 是一种类似边缘发光的效果而这种效果正好与Rimlight描边方式是相反的, 向外扩散暂时能想到的代价最低的做法流程如下:把模型画到RTT上, 用Al转载 2012-08-31 07:00:45 · 2251 阅读 · 0 评论 -
纹理拼接后的Wrap寻址
http://blog.youkuaiyun.com/xoyojank/article/details/3212425 拼接后的纹理:正常的草地(不进行WRAP寻址):WRAP = 5时的情况:MinFilter = Linear时的情况:shader实现:[cpp] view plaincopyprint?sampler2D转载 2012-08-31 07:03:28 · 1685 阅读 · 0 评论 -
Direct3D 10 Shader Model 4.0
作者:David Blythe本文版权归原作者所有,仅供个人学习使用,请勿转载,勿用于任何商业用途。由于本人水平有限,难免出错,不清楚的地方请大家以原著为准。欢迎大家和我多多交流。翻译:claymanBlog:http://blog.youkuaiyun.com/soilworkemail:clayman_joe@yahoo.com.cn 4.Shader Model 4.0转载 2011-03-30 21:35:00 · 2468 阅读 · 0 评论 -
将Shader嵌入Ogre(固定渲染管线到可编程渲染管线)
引言:一般的,ogre是使用固定渲染管线,嵌入可编程管线,可借助GPU,提供更多更丰富的效果。//-----------------使用脚本加入shader(.material或者.programe使用.hlsl etc)----------1、声明(不是写shader程序) 这儿声明的意思:不是写Shader程序(这个着色程序一般在.hlsl/.glsl/.cg后缀的文件里转载 2011-06-13 11:10:00 · 1678 阅读 · 0 评论 -
Vertex Shader 结构
我们将通过下面这个Vertex Shader结构的图形模型来进入Vertex Shader的世界:在Vertex Shader中的所有数据都被表现为128-bit的四元数(4 x 32-bit):因为使用一个指令但处理一组数据,一个Vertex Shader的硬件可以被看成是一个典型的SMID(单指令多数据)处理器。Vertex Shader使用的这种数据格式非常的转载 2011-04-24 11:35:00 · 3625 阅读 · 0 评论 -
Shader 多个点光源
原文地址:http://digierr.spaces.live.com/blog/cns!2B7007E9EC2AE37B!636.entry。本教程基于教程17中实现的点光源+自阴影,要实现多个光源,原理上并没有什么新东西。多个点光源要实现多个点光源,我们需要在shader中使用n次光照方程。因此,如果有三个光源,我们需要为三个光源的漫反射、镜面高光、自阴影和衰减,下面是光照方程转载 2011-10-11 07:55:13 · 3553 阅读 · 0 评论 -
用asm写shader的注意事项
1. 要分清哪些是instruction 哪些是macroinstruction,对于macroinstruction,它经过汇编后实际上会展开成一系列instruction,所以使用macroinstruction的时候最好不要把同一个寄存器作为源寄存器和目的寄存器,因为宏展开后可能在这些语句的前间部分出现修改源寄存器的语句,而在后面部分显然不希望源寄存器被修改,所以导致出错。转载 2009-06-09 11:16:00 · 2641 阅读 · 0 评论 -
在基于shader的D3D程序中实现2D面板
3D游戏中,很多东西都需要以2D的形式展现,比如人物的状态栏,物品栏等,那么如何才能在3D场景中放置它们呢?我在这里介绍一种通过简化变换过程而实现的方法. 大家知道,一个模型顶点在显示到屏幕上,一共要经过4次变换,分别是世界变换,摄象机变换,投影变换以及视口变换.在世界变换中,我们通过一个仿射矩阵把这个顶点放置到世界的相应位置;在摄象机变换中,我们以摄象机作为原点把顶点放置到相应位置;而转载 2012-08-30 07:01:20 · 1484 阅读 · 0 评论 -
shader model 2.0 和shader model 3.0 的对比
Pixel Shader功能Shader 2.0 Shader 3.0 描述Shader长度96 65535+ 允许采用更复杂的阴影、光线和程序 动态分支不支持 支持 通过跳过无关像素上的复杂着色以提高性能S转载 2011-06-29 09:29:00 · 5270 阅读 · 0 评论 -
显卡类型和shader版本大致对应列表
一般显卡支持的语法规则如下:vs_1_1 这是一种DirectX顶点渲染器汇编语法。 支持显卡有:ATI Radeon 8500,nVidia GeForce 3。vs_2_0 另一种DirectX顶点渲染器汇编语法。 支持显卡有:ATI Radeon 9600,nVidia GeForce FX 5系列。vs_2_x 另一种DirectX顶点渲染器汇编语法。转载 2011-12-14 16:42:16 · 2948 阅读 · 0 评论 -
以shader驱动的次世代3d引擎高效光影效果的解决方案
@当代网络游戏跟次时代游戏引擎关键不同:当前网络游戏一般要兼容很多种低端配置,低端因为三角形处理能力、贴图速度都还是制约显卡发展的重要瓶颈,所以显卡只要提高这些方面的运算能力,就可以在游戏中大幅度提升运行速度,大多游戏仍然采用贴图实现大部分效果,甚至阴影、光源这些效果也是用贴图处理,死板的贴图可以简单的实现一些效果,但是想要提升这种效果,就必须用精度更高、容量更大的贴图。转载 2012-08-30 06:52:25 · 1736 阅读 · 0 评论 -
Unity3D中的shader基础知识
1.Unity中配备了强大的阴影和材料的语言工具称为ShaderLab,以程式语言来看,它类似于CgFX和Direct3D的效果框架语法,它描述了材质所必须要的一切咨询,而不仅仅局限于平面顶点/像素着色。2.在Unity3D中创建一个Shader:Assets -> Create -> Shader3.创建了Shader就可以应用到各个材质Material中,创建材质:Assets ->转载 2012-06-09 10:24:19 · 4068 阅读 · 0 评论 -
Shader 点光源和自阴影
原文地址:http://digierr.spaces.live.com/blog/cns!2B7007E9EC2AE37B!612.entry。本教程基于教程4-法线映射。在实现一个点光源前你无需知道法线映射,所以如果你只想知道如何实现一个点光源,可以暂时无需理解教程4的知识。这个教程只解释什么是点光源以及如何实现它,你可以在本教程使用的算法之后添加法线映射或其他你需要的shader。转载 2011-10-11 07:58:50 · 6758 阅读 · 0 评论 -
Shader Model 3 寄存器
http://msdn.microsoft.com/en-us/library/bb509656(v=VS.85).aspx Registers - vs_3_0This section contains reference information for the input and output registers implemented by vertex shader ver转载 2011-06-20 17:38:00 · 2904 阅读 · 0 评论 -
基于GPU的光线投射体绘制(GPU-Based Ray-Casting Volume Rendering)入门学习
http://blog.youkuaiyun.com/xiajun07061225/article/details/7291878 基于GPU的光线投射体绘制这篇文字将会讲述怎么运用OpenGL和nVidia Cg进行基于GPU的光线投射体绘制。 读者最好具有OpenGL和顶点-片段渲染的相关经验。首先,我们为什么需要这个算法?因为我们需要高质量的体绘制效果,而且光线投射转载 2012-09-01 19:48:32 · 2613 阅读 · 1 评论 -
CG 顶点脚本
CG 顶点脚本 nVidio的面向GPU的C语言,如果你相信它就好好学学吧,同样这里也只是个入门。记住,类似的语言还有微软的HLSL,OpenGL的GLSL,ATI的shaderMonker。不要选错哦:) 使用顶点和片断脚本去做渲染工作可以得到额外的好处,最大的好处就是把CPU的一些工作交给了GPU,Cg提供了书写这些强大的转载 2010-03-30 16:51:00 · 2591 阅读 · 0 评论 -
象素shader入门(Introduction to Pixel Shaders)
一个pixel shader是在每一像素光栅化处理期间物理卡的GPU上执行的一种程序。(不像vertex shader,Direct3D不会用软件方法仿效pixel shader的功能。)。它本质上代替了固定管道功能中的多重纹理阶段并给了我们直接操作单独像素和访问每一个像素纹理坐标的能力。这种直接访问像素和纹理坐标允许我们完成多种特殊效果,比如多重纹理、逐像素光照、视野深度、云层仿真、火焰仿真和复转载 2009-06-04 09:16:00 · 8006 阅读 · 1 评论 -
Shader学习心得
以下的教程由乌龟和毛驴的技术小屋原创,转载请注明原始文章出处,并保留这段话,请勿侵权. 1.1 序言 以前一直觉得,学习shader最好是在Visual Studio的环境下进行学习,因为这样不仅能够学到DirectX和C++的一些使用方法,而且对于Shader在实际应用时也有好处.结果今天就碰得灰头土脸的. 1.2 碰壁过程 下面是我的程序段:转载 2011-04-24 11:29:00 · 3317 阅读 · 0 评论 -
XNA Shader 逐顶点和逐像素光照
逐顶点光照所谓逐顶点光照,简单地说就是在vetext shader中计算光照颜色,该过程将为每个顶点计算一次光照颜色,然后在通过顶点在多边形所覆盖的区域对像素颜色进行线形插值。现实中,光照值取决于光线角度,表面法线,和观察点(对于镜面高光来说)。具体实现时的shader代码如下://相关全局变量shared float4x4 matWorldViewProj;shared floa转载 2011-11-14 11:29:53 · 2257 阅读 · 0 评论 -
Shader Model4.0统一渲染架构
微软的DirectX 9.0c距今离它的诞生已经有2年的光景,DX9.0c给我们带来了全新的Shader Model3.0技术,也使得3D画面较以往了有了质的突破,DirectX 9.0c是截至至今微软历史上寿命最长的一代API,而图形技术的发展是不会停下脚步的,2006年微软发布了全新的DirectX 10.0,仅从版本上看比9.0c相差一级,但是DirectX 10.0带给我们的又将是一个全新转载 2011-03-30 21:36:00 · 4389 阅读 · 0 评论 -
HLSL傻瓜教程
一个简单的HLSL程序,返回一个材质的各点的颜色。sampler s0 : register(s0);float4 main(float2 tex : TEXCOORD0) : COLOR{ return tex2D(s0,tex);}HLSL,颜色表示。 使用MPC的custom shader,由于在MPC中需要使用HLSL编写shader,转载 2010-03-17 10:53:00 · 4362 阅读 · 0 评论 -
WOW地形Shader分析
SPXG // 标识// 用到5张图片:{ blendTexture = 0 layer0Texture = 1 layer1Texture = 2 layer2Texture = 3 layer3Texture = 4}!!ARBfp1.0// 定义常量:PARAM c[1] = { { 1, 0.30000001, 0.6999转载 2011-07-22 17:55:01 · 1899 阅读 · 0 评论 -
HLSL Effect的vertex shader和pixel shader的参数传递
HLSL基本以C语言的习惯来写的,但是如果完全以C语言的角度来看,我个人感觉入门最难理解就是顶点着色器和像素着色器的两个函数的参数传递了。 下面以最简单的HLSL中效果框架举例说下自己的理解。 uniform extern float4x4 gWVP; struct OutputVS { float4 posH : POSITION0;转载 2012-07-25 20:08:07 · 6950 阅读 · 0 评论 -
聚光灯+法线贴图 shader
前几天看了两个shader分别是聚光灯和法线贴图,于是想把这两个shader结合起来,产生手电照射潮湿的凹凸墙面效果:本想很容易就能实现但是由于之前不理解光照模型的计算原理,所以我改起来相当费劲,经过努力终于弄明白了两者的原理,然后写出了shader:struct Mtrl{ float4 ambient; float4 diffuse; float4 spec;转载 2011-10-11 08:07:25 · 3196 阅读 · 1 评论 -
GLSL最简单的范例
这是我在新浪网上看到的一个很完整的GLSL的范例。本人自己照方法调试成功了。在这里和大家分享一下!O(∩_∩)O~OpenGL Shading Language 的 “Hello World”一个旋转的茶壶:这个例子在 windows下 采用 VC6.0 开发首先确定你已经安装并可以正常使用 glew 和 glut 扩展库下一步,新建一个控制台程序,项目加载库文件 gl转载 2010-03-17 10:59:00 · 4685 阅读 · 5 评论 -
DX10的几何着色器
几何着色器是DX10中刚刚加入的内容,在DX9中从未有过,其渲染过程中是介于顶点着色器与像素着色器之间。几何着色器的使用主要目的是为了可以在着色器程序中改变顶点的数量和类型。下面是一个几何着色器的定义[maxvertexcount(N)]void ShaderName ( PrimitiveType InputVertexType InputName转载 2012-09-01 19:22:46 · 1479 阅读 · 0 评论 -
延迟渲染(Deferred Shading)技术详解
http://blog.youkuaiyun.com/xiajun07061225/article/details/7680895 一、Deferred shading技术简介Deferred shading是这样一种技术:将光照/渲染计算推迟到第二步进行计算。我们这样做的目的是为了避免多次(超过1次)渲染同一个像素。其基本思想如下:1、在第一步中,我们渲染场景,但是与通常情况下转载 2012-09-01 19:34:16 · 29215 阅读 · 0 评论 -
GLSL预定义变量
http://blog.youkuaiyun.com/xiajun07061225/article/details/7660759 GLSL为不同的渲染阶段定义了一些特定的变量。这些预定义(也叫做内置变量)有特定的属性。所有的预定义变量都以gl_开头。用户定义的变量不能以此开头。下面分类进行介绍。(1)顶点着色器输入in int gl_VertexID;in int gl_I转载 2012-09-01 19:38:25 · 1912 阅读 · 0 评论 -
基于GPU的优化处理
早期的三维场景绘制,显卡只是为屏幕上显示像素提供一个缓存,所有的图形处理都是由CPU单独完成,而渲染一个复杂的三维场景,需要在短时间内处理几百万个三角形顶点和光栅化上百万个像素,擅长于执行串行工作的CPU实际上难以胜任这项任务,速度上达不到要求。所以,若要求在PC上实时生成三维图像,则将牺牲质量,导致画面很粗糙。现阶段,GPU的发展极大地提高了计算机图形处理的速度和图形质量,并促使图形处理功能不断转载 2011-03-23 10:01:00 · 4164 阅读 · 0 评论 -
HLSL GLSL CG着色语言比较
摘抄“GPU Programming And Cg Language Primer 1rd Edition” 中文名“GPU编程与CG语言之阳春白雪下里巴人” In the last year I have never had to write a single HLSL/GLSL shader. Bottom line, I can’t think of any reason转载 2011-06-29 13:15:00 · 21031 阅读 · 3 评论 -
shader model
Shader Model(在3D图形领域常被简称SM)就是“优化渲染引擎模式”。事实上,Shader(渲染或称着色)是一段能够针对3D对象进行操作、并被GPU所执行的程序。通过这些程序,程序员就能够获得绝大部分想要的3D图形效果。在一个3D场景中,一般包含多个Shader。这些Shader中有的负责对3D对象表面进行处理,有的负责对3D对象的纹理进行处理。早在微软发布DirectX 8时,Shad转载 2011-03-30 21:40:00 · 2899 阅读 · 0 评论 -
图形和Shader技术
图形和Shader技术游戏编程精粹5(最近已出版到6和7)——象其他游戏编程精粹一样非常棒。如果您正在寻找游戏编程的解决方法,您可以将它从头读到尾或作为参考。本书包括七个部分——常规编程和人工智能数学和物理学,网络和音频。这是最值得推荐的游戏编程丛书。ShaderX——另一个丛书。我读过前三本,当我想实现很酷的渲染效果时就会参考此书。第4和第5卷和前面几本一样棒。Wolfgang Enge转载 2012-07-27 07:09:13 · 1708 阅读 · 0 评论 -
自己写了个让人眼晕的Shader
sampler2D Texture0;float4 ps_main( float2 texCoord : TEXCOORD0 ) : COLOR{ float2 temp1 = float2(( texCoord.x * 648 + 10 ) / 648, ( texCoord.y * 514 + 10 ) / 514); float2 temp2 = float2(原创 2010-04-07 11:29:00 · 2189 阅读 · 0 评论 -
画质速度通吃 浅谈为游戏而生的SM3技术
DX9发布已经相当长一段时间了,由于DX9对游戏开发的好处显而易见,因此现在有越来越多的游戏支持DX9,不过DX9在这一期间并非一层不变。 在NVIDIA从GeForce3时代引入硬件可编程概念以来,正在吸引着大量的程序开发人员投身到顶点和像素着色器的编写中。到DX9时期,多顶点的概念已经变得越来越深入人心,而且采用多顶点能够描绘出更加逼真的游戏画卷而就在开发人员的进一步深入挖掘多顶转载 2010-04-07 11:28:00 · 2452 阅读 · 0 评论