使用RampTexture来控制diffuse shading

RampTexture

  RampTexture(渐变纹理),可以是1D/2D纹理.

  This allows you to accentuate the surface‘s colors to fake the effects of more bounce light or a more advanced lighting setup. You see this technique used a lot more for cartoony games, where you need a more artist-driven look to your Shaders and not so much of a physically-accurate lighting model.

  首先需要一张渐变纹理:

  

  在Half Lambert的基础上,使用RampTexture来控制diffuse shading:

  

  The following is the result you will see after running the code:

  

How it works

  We take the re-mapped diffuse values from the Half Lambert operation and pass them into float2() to create the lookup values for the texture. When a value of 0 is set as the hLambert variable, the tex2D function looks up the pixel value at the UV value of (0,0). In this case it‘s the subtle peach color from the ramps gradient. When a value of 1 is set for the hLambert variable, the tex2D function looks up the pixel at the UV value of (1,1), or the white color.

  

时间: 2024-12-29 23:30:25

使用RampTexture来控制diffuse shading的相关文章

Diffuse Shading——漫反射光照改善技巧

转:http://www.narkii.com/club/thread-355113-1.html 我们会列出两种方法:使用Half Lambert lighting model(半兰伯特光照模型)和使用一个ramp texture来控制diffuse shading. 准备工作 同样,我们需要你已经做好了上一篇文章中的内容,并得到了如下shader: Shader “Custom/BasicDiffuse” { Properties { _EmissiveColor (“Emissive Co

【Shader拓展】Illustrative Rendering in Team Fortress 2

写在前面 早在使用ramp texture控制diffuse光照一文就提到了这篇著名的论文.Valve公司发表的其它成果可见这里.这是Valve在2007年发表的一篇非常具有影响力的文章,我的导师也提到过这篇,既然这么有名.我就去拜读了下,结果真是读到头大啊啊啊啊!事实上半年前就读了这篇文章.差一点读完.后来一比赛一考试一放假就没完毕,对自己非常愧疚. ..时隔这么久希望能把之前的理解整理出来,顺便看看能不能有很多其它收获.(又要读一遍E文!) 这篇博客在翻译这篇论文的基础上.会在Unity S

OpenGL进阶(十九) - 多光源

从光说起 先看一段wiki中对光的定义 光是一种人类眼睛可以见的电磁波(可见光谱),视知觉就是对于光的知觉[1].光只是电磁波谱上的某一段频谱,一般是定义为波长介于400至700纳米(nm)之间的电磁波,也就是波长比紫外线长,比红外线短的电磁波.有些资料来源定义的可见光的波长范围也有不同,较窄的有介于420至680纳米,较宽的有介于380至800纳米. 光既是一种高频的电磁波,又是一种由称为光子的基本粒子组成的粒子流.因此光同时具有粒子性与波动性,或者说光具有"波粒二象性". 按波动理

D3D 9 通过 Alpha 测试与 Alpha 混合随意控制纹理透明度

网上不怎么见得到关于 D3D 9 的技术文章了,笔者最近在写一个 2D 的功能,希望通过某些设置来随意控制一张 2D 纹理贴图的透明度,网上找来找去,所有的文章,要不就是照抄市面教材,要么是照抄官方文档,稍微好一点的,就是在官方教材的基础上增加中文翻译,哎哟我去,找了两天啊,功能是实现了,可是心中的疑惑一直挥之不去,为啥 ?因为我的代码是照抄的啊,我只知道这样子设置可以得到这样子的效果,但是我特么不知道为啥啊,我特么要是下次再遇到同样的问题,我是不是又要再去抄一次代码 ? 好了,牢骚就发到这里吧

Deferred Shading,延迟渲染(提高渲染效率,减少多余光照计算)【转】

Deferred Shading,看过<Gems2> 的应该都了解了.最近很火的星际2就是使用了Deferred Shading. 原帖位置:   http://blog.csdn.net/noslopforever/archive/2009/03/03/3951273.aspx 这篇文章是对GEMS2里<Deferred Shading in S.T.A.L.K.E.R.>(中文译名<S.T.A.L.K.E.R.中的延期着色>,原作者Oles Shishkovtsov

Matlab绘图基本控制命令

图形的控制与表现 (Figure control and representation) MATLAB提供的用于图形控制的函数和命令:   axis:  人工选择坐标轴尺寸.    clf:清图形窗口. ginput: 利用鼠标的十字准线输入.   hold: 保持图形.    shg:显示图形窗口.subplot: 将图形窗口分成N块子窗口.1.图形窗口(figure window)(1). 图形窗口的创建和选择(Creating and selecting of figure window)

纯Shading Language绘制飞机火焰效果

上篇<纯Shading Language绘制HTML5时钟>体现了GLSL可编程性特点,但没有体现GLSL可编程出各种酷炫效果的特点,今天我们将用纯Shading Language绘制火焰效果,并将其应用到<HT图形组件设计之道(四)>飞行的飞机例子上. 火焰的例子我已发在 http://js.do/hightopo/fireball,其本质在绘制gl.POINTS的点类型时,通过在Fragment Shader在点区域内生成noise的噪声用于绘制多种颜色效果,并将多次不同噪声算

引擎设计跟踪(九.14.3.1) deferred shading: Depthstencil as GBuffer depth

问题汇总 1.Light support for Editor编辑器加入了灯光工具, 可以添加和修改灯光. 问题1. light object的用户互交.point light可以把对应的volume (wireframe sphere/cone)画出来用于用户选中, 但是光源太多的时候, 球就有点凌乱了. 所以使用了HUD, 只要选中HUD就会选中灯光, 只有灯光被选中的时候才显示volume. 另外, 编辑器里面的很多"不可见"的逻辑对象都有这种需求, 虽然现在还没有. 另外, 可

UnrealEngine4 PBR Shading Model 概述

虽然是概述,但内容并还是有些多,写上一篇PBR概念概述后,也在考虑怎么继续下去,最后还是觉得先多写一些东西再慢慢总结,所以还是尽量把这些年PBR相关的Paper精粹沉淀下来吧. 因为UE4开源的缘故,所以一开始还从它入手.相关的ppt和notebook可以从下面的链接下载,同期的黑色行动2(black op2)的PBR使用也是很有参考价值的,加上本文里也有OP2的IBL近似方法的介绍,如果没看过那也很值得下载的. http://blog.selfshadow.com/publications/s