HLSL】的更多相关文章

CG 跟 HLSL几乎是一摸一样的. (HLSL官方参考,包含语法格式,函数库,关键字,在这个地方: http://msdn.microsoft.com/en-us/library/bb509638(v=VS.85).aspx, 如果链接失效,用“Reference for HLSL”搜索.) Shader本身是一个单纯的单元,就是对输入(顶点或像素或物体)进行能做的算术运算,然后把结果送出的一个固件. 1.内置元类型 float: 32 bit浮点类型half:  16 bit浮点int:  …
http://www.phoronix.com/scan.php?page=news_item&px=OTI2NA Note:  Something very instersting to wine translating 这个点子是对于GPU virtualization有启发...不过有很多技术和专利上的问题. MSFT HSLS -> LLVM IR -> Windows graphics driver or Linux graphic drivers. Apple GLSL -…
So, Microsoft is making an opensource HLSL-to-almost-LLVM compiler, and Khronos is making an opensource HLSL/GLSL-to-almost-LLVM compiler. Apple MetalSL is almost C++ (and new HLSL will get closer to C++). Although Apple's compiler is not open-source…
原文出自:http://msdn.microsoft.com/en-us/library/windows/desktop/bb509709(v=vs.85).aspx#Profiles 拿DX11 SDK中BasicCompute11为例子 右击BasicCompute11.hlsl -> properities -> Custom Build Tool -> command line: "$(DXSDK_DIR)Utilities\bin\x86\"fxc.exe…
DirectX HLSL相关 顶点着色器可用软件顶点运算方式来模拟,即在创建设备时,将设备行为标记设定为: D3DCREATE_SOFTWARE_VERTEXPROCESSING 在记事本中编写着色器代码,使用函数D3DXCompileShaderFromFile对着色器文件进行编译. 每个着色器都用常量表来存储其变量. 为了使应用程序能够访问着色器的常量表,D3DX库提供了接口ID3DXConstantTable 获取常量的句柄: D3DXHANDLE ID3DXConstantTable :…
今天学习的是镜面的反射光照,其实一般在场景中基本环境光和漫反射光照已经可以表现出一个不错的照明了,今天的镜面反射光照其实仅仅适合于需要在表面添加抛光或者闪耀的物体上,例如金属.玻璃等等,同时也是基于之前的环境光和漫反射光的基础之上的,先来看看镜面反射光照的公式吧. 镜面反射光照公式:I=AiAc+Di*Dc*N.L+Si*Sc*(R.V)^n       公式说明:其中,AiAc+Di*Dc*N.L是前一节的公式,即环境光+漫反射光,Si和Sc分别为镜面反射光照的强度和颜色,R=2*(N.L)*…
我常常这么大胆的认为,搞科学的人总是喜欢用各种让常人难以理解的复杂方式去处理某些其实可能很简单的事情,这种情况在他自身擅长的.有着诸多对手竞争的领域上极为常见.比如吧,搞DirectX的人用了左手坐标系,搞OpenGL的人偏偏就要用右手坐标系.这种情况的目的,是让他们那些搞科学的人得以突出他们的存在感和优越感.这种增加了这么多记忆成本只为了让他们爽一爽的事儿,对于我这种被科学搞了的人来说 ,就只剩下纠结和郁闷这两种感觉了.以上是某天看书看烦了的感想. Anyway,在学习RenderMonkey…
偶遇需要再WPF里面处理九宫格,因不喜截图缩放,即写成了HLSL的Effcect sampler2D input : register(s0); /// <summary>The float of the Left.</summary> </minValue> </maxValue> </defaultValue> float Left : register(C0); /// <summary>The float of the Top…
error: 1. mul' implicit truncation of vector type 2. matrixXXX: array dimensions of(unknown scope entry kind) must be explicit------------(XXXX(float3X4 matrix[]))-->(XXXX(float3X4 matrix[12])) this problem refers to a          para     float 3X4 mat…
在CG/HLSL中访问着色器属性 Shader在Properties块中访问材质属性.如果你想在一个着色程序中访问一些属性,你需要声明一个Cg/HLSL具有相同的名称和一个匹配的类型的变量. Properties 例如这些材质属性: _MyColor ("Some Color", Color) = (1,1,1,1) _MyVector ("Some Vector", Vector) = (0,0,0,0) _MyFloat ("My float"…
原文地址http://blog.csdn.net/chpdirect1984/article/details/1911622 目录 前言 1.HLSL入门 1.1什么是着色器 1.2什么是HLSL 1.3怎么写HLSL着色器 1.4怎么用HLSL着色器 2.顶点着色器 2.1可编程数据流模型 2.2顶点声明 2.3用顶点着色器实现渐变动画 3.像素着色器 3.1多纹理化 3.2多纹理效果的像素着色器 3.3应用程序 4.HLSL Effect(效果框架) 4.1Effect代码结构 4.2用Ef…
最近尝试用了下Directx下的Effect框架,作为一初学者初学者,说下为什么我们要使用Effect框架及其好处吧. 首先Effect最大好处的就是简单,使得编写Shader绘制的程序工作量大大下降.如果不用Effect框架,那么一个个Vertex Shader,Geometry Shader和Pixel Shader都要一遍遍的先用D3DX11CompileFromFile得到二进制代码,再分别调CreateVertexShader, CreateGeometryShader和CreateP…
HLSL常量缓冲区打包规则 DirectX11 With Windows SDK完整目录 欢迎加入QQ群: 727623616 可以一起探讨DX11,以及有什么问题也可以在这里汇报. 尽管打包规则并不复杂,但是稍不留意就可能会导致因为打包规则的不理解而产生的数据错位问题. 下面会使用大量的例子来进行描述,并对有争议的部分使用图形调试器来反汇编着色器代码加以验证. 1. C++中的结构体数据是以字节流的形式传输给HLSL的 例1.1 若C++结构体和HLSL常量缓冲区如下: // cpp stru…
[HLSL ddx / ddy] 在光栅化的时刻,GPUs会在同一时刻并行运行很多Fragment Shader,但是并不是一个pixel一个pixel去执行的,而是将其组织在2x2的一组pixels分块中,去并行执行. 偏导数就正好是计算的这一块像素中的变化率.从下图可以看出来ddx 就是右边的像素块的值减去左边像素块的值,而ddy就是下面像素块的值减去上面像素块的值.其中的x,y代表的是屏幕坐标. [偏导数的应用] 1.LOD的确定. 大家应该都知道mipmap 的用处,但是可能并不知道mi…
[HLSL] 1.Direct3D 9 shaders can be designed using shader model 1, shader model 2 and shader model 3;   Direct3D 10 shaders can only be designed on shader model 4. Direct3D 11 shaders can be designed on shader model 5. Direct3D 11.3 and Direct3D 12 ca…
  转:http://blog.csdn.net/leonwei/article/details/8212800 effect其实整合了shader和render state的控制两大部分内容 9.1 effect文件基本框架 part1 :shader state包括全局变量 shader数据结构定义,shader的实现 part2 :texture and sampler state,这个通常是全局变量,用于shader中,通常要定义在shader的实现之前 part3 其他的render…
原文路径:http://www.csharpwin.com/csharpspace/3087.shtml 写过Direct3D程序的朋友们可能还记得,在以往,大家常为如何表现更多真实的材质(如玻璃.金属等)而发愁.这种情况在DirectX8.0问世后有所改善了,我们可以编写Shader来完成.最新的Direct3D中,HLSL把程序员从复杂的Shader指令集中解放出来,着力于更重要的算法. HLSL(High-Level Shader Language)本文将从如下几个部分介绍 准备工作 HL…
由于对于dxva2解码得到的数据不宜copy回内存给CPU处理,所以最好的办法是在GPU上直接进行处理.D3D的像素着色器能够对像素直接进行操作,实现点运算极其简单方便,简单的卷积运算效果也非常好.但D3D9的限制也很多,对于过于复杂的图像处理则显得有些不能胜任. 1.点运算 点运算用HLSL非常容易实现,几乎是公式怎么写,代码就怎么写.以RGB转灰度图显示为例: texture Tex0 ; ; float aValue= 0.0 ; float bValue= 0.0 ; sampler2D…
Intrinsic Functions (DirectX HLSL) The following table lists the intrinsic functions available in HLSL. Each function has a brief description, and a link to a reference page that has more detail about the input argument and return type. Name Syntax D…
HLSL Cross Compiler This library compiles High Level Shading Language (HLSL) shader source code into a high-level intermediate representation, performs device-independent optimizations, and produces OpenGL Shading Language (GLSL) compatible source co…
http://www.cnblogs.com/rainstorm/archive/2013/05/04/3057444.html 前言 五一在家无事,于是学习了一下HLSL,基于XAN4.0的.学习完了也就总结一下,纯粹是新手学习的经验之谈,纰漏之处还望见谅,不喜勿喷. HLSL是一种使用GPU渲染出图像的技术,不仅可以改变最终呈现的颜色,还可以物体的大小.胖瘦和位置等.例如物体的碎裂效果就可以使用HLSL来渲染得到. 数据类型 数据类型有值类型.向量.矩阵.采样器.和结构体. 1.值类型 bo…
一.简介 高级着色语言(High)可以编写顶点着色器和像素着色器,取代固定功能流水线中的部分功能,在图形卡的GPU(Graphics Processing Unit,图形处理单元)中执行 注意:如果图形卡不支持顶点着色器和像素着色器,可以切换为REF设备,但是这个设备会运行很慢 Shader language目前有3种主流语言:基于OpenGL的GLSL(OpenGL Shading Language) 基于Direct3D的HLSL(High Level Shading Language) N…
CG 内置函数  英伟达官网链接: http://http.developer.nvidia.com/Cg/index_stdlib.html absacosallanyasinatan2atanbitCountbitfieldExtractbitfieldInsertbitfieldReverseceilclampclipcoshcoscrossddxddydegreesdeterminantdistancedotexp2expfaceforwardfindLSBfindMSBfloatToI…
原文:[HLSL学习笔记]WPF Shader Effect Library算法解读之[DirectionalBlur] 方位模糊是一个按照指定角度循环位移并叠加纹理,最后平均颜色值并输出的一种特效.效果如下图: Angle=0:BlurAmount=0.1:   Angle=45;BlurAmount=0.1; 看看源代码: ++++++++++++++++++++++++++++++++++++++          //模糊的角度 float Angle : register(C0);  …
原文:[HLSL学习笔记]WPF Shader Effect Library算法解读之[Embossed] Embossed(浮雕效果)          浮雕效果主要有两个参数:Amount和Width.Amount控制浮雕边缘的对比度,Width参数控制浮雕效果的精细程度,数值越小越精细. 效果如下图所示: 源代码如下: +++++++++++++++++++++++++++++++++++++++++++++ //浮雕特效 //数量,一个控制雕刻边缘对比度的参数,数值越大,对比越强 flo…
原文:[HLSL学习笔记]WPF Shader Effect Library算法解读之[BandedSwirl] 因工作原因,需要在Silverlight中使用Pixel Shader技术,这对于我来说可算是相当有难度了,首先我是个Java Web开发程序员,从来没正经地学过微软的开发语言和工具:其次,对于算法这种东西,向来有种天生的排斥,一看便头疼.不过项目逼到份上了,只能硬着头皮上,真不知道领导们是怎么想的.还是言归正传吧,记录记录自己的学习心得. 熟悉Silverlight的人都知道,SL…
(此文章只是在对WPF的Effect产生兴趣才稍微研究了一点后面的知识;需要了解更多可参考https://archive.codeplex.com/?p=shazzam的源代码以及WPF基础知识) 1.之前一直使用blend里自带的几个特效,突然有一天比较好奇这些特效是怎么来的. 然后就听说了shazzam并看到更多的特效 2.在参考网址下载了shazzam的代码来研究研究,只抽取出里面[如何将.fx文件编译为.ps,再产生一个调用.ps文件的.cs文件,然后就可以像正常使用其它自带Effect…
原文:WPF 像素着色器入门:使用 Shazzam Shader Editor 编写 HLSL 像素着色器代码 HLSL,High Level Shader Language,高级着色器语言,是 Direct3D 着色器模型所必须的语言.WPF 支持 Direct3D 9,也支持使用 HLSL 来编写着色器.你可以使用任何一款编辑器来编写 HLSL,但 Shazzam Shader Editor 则是专门为 WPF 实现像素着色器而设计的一款编辑器,使用它来编写像素着色器,可以省去像素着色器接入…
转自:https://blog.csdn.net/Blues1021/article/details/47093487 基本前提概念 Shader是一种映射到GPU硬件汇编语言上的高级语言,Shader中的数据类型是要声明类型和用途的,用途其实就是和着色器寄存器关联,输入位置寄存器,输出位置寄存器,输出颜色寄存器等.Shader HLSL中的颜色是rgba的类型,不要弄错了.Shader中的每一个类型,函数,字符串都是有含义的. 顶点和像素着色器中,常量表用SetDefault传入Device将…
HLSL中constant variables的packing规则 参考MSDN上的官方文档.一般而言,HLSL将数据打包为4字节对齐,此外,它不允许数据跨16字节(即4个float的vector)的访问.这个"此外"是我比较关心的,对使用者最直接的影响就是用constant buffer进行应用程序和shader间的交互的时候,应用程序这边的数据也要手动做符合16字节的对齐规则.比如在shader里面写: cbuffer constantValues { float2 Val0; f…