sample a texture as a rendertarget】的更多相关文章

ID3D11DeviceContext::PSSetShaderResources: Resource being set to PS shader resource slot 0 is still bound on output! Forcing to NULL. [ STATE_SETTING WARNING #7: DEVICE_PSSETSHADERRESOURCES_HAZARD] 似乎psv ps3 ps4支持直接采样texture作为rendertarget但是 dx系列....…
cube map texture可以理解为6个面的纸盒, sample的时候使用vector射线型的sample. volume texture可以理解是一摞2D texture,sample的时候用第几摞+2D坐标来sample. 虽然都是非2D,sample都用3维数据,差异大啊. CubeMap 在实时渲染中应用十分广泛. 通过视线和法线计算出的反射光线来查询CubeMap可以创建一个真实的反射镜面体, 通过视线和法线计算出的折射光线来查询CubeMap可以创建一个透明体. 由于查询速度快…
Welcome back. Last part was about vertex shaders, with some coverage of GPU shader units in general. Mostly, they’re just vector processors, but they have access to one resource that doesn’t exist in other vector architectures: Texture samplers. They…
Welcome back. Last part was about vertex shaders, with some coverage of GPU shader units in general. Mostly, they’re just vector processors, but they have access to one resource that doesn’t exist in other vector architectures: Texture samplers. They…
写在前面 之前遇到过一些朋友问怎么在材质面板里定义类似于bool这种变量,控制一些代码的执行.我们当然可以写一个C#文件来自定义材质面板,就像Unity为Standard Shader写材质面板一样(你可以在built-in shader包里找到这些文件),但这样有时候太麻烦了.实际上,有一种更简单的方法,不需要写额外的C#文件就可以直接在shader里定义类似bool.enum这种简单的变量,Unity为这些变量提供了内置的材质面板.而这就是通过MaterialPropertyDrawer(当…
先写一个纹理遮罩shader Shader "Unlit/TexMask" { Properties { _MainTex ("Texture", 2D) = "white" {} _MaskTex("Mask Texture",2D) = "white"{} } SubShader { Tags {"Queue"="Transparent" "Render…
一.使用Cubemap,做一个假反射 shader代码如下: Shader "Custom/glassShader" { Properties { _MainColor("Main Color",Color)=(1,1,1,1) _MainTex ("Base (RGB)", 2D) = "white" {} _Cube("Cube",CUBE)=""{} } SubShader { T…
项目上遇到了一个问题,灰度shader无法在mask下使用,两个之间会一定的冲突.经查验是mask组件对shader的相关属性有要求,添加相关的属性则可符合要求使其他shader使用UGui里的mask. Shader "Custom/Opaque" { Properties { [PerRendererData] _MainTex ("Sprite Texture", 2D) = "white" {} _Color ("Tint&qu…
一般来说,2D的特效都会用到ADD模式来播放,但是Unity居然没有内置任何的混合模式,网上资料太少,没有写好的Shader,这里提供下我自己编写Shader: Shader "Unlit/NewUnlitShader" { Properties { _MainTex ("Texture", 2D) = "white" {} } SubShader { //Tags { "RenderType"="Opaque&qu…
原理就是将一张rgba 32的分成两张纹理:一张平台压缩不带alpha和一张为原图1/4大小的压缩图存储alpha信息(用r分量当alpha值),然后修改原材质的Shader传入这两张纹理. 代码如下(这个是比较针对我们项目的,你可以自己手动改下) 注意:NGUI的UIPannel裁剪是需要自己手动写不同裁剪层级的Shader,这个不要忘记写 using System; using UnityEngine; using System.Collections; using System.Colle…