很多刚开始写HLSL,或者cg,glsl等shader语言的朋友一定会有个小困惑,编辑器不支持这些shader语言的关键字,在记事本中跟文本一样全是一个颜色的写,很容易犯错。下面以HLSL为例(其他类似)说下,如何使得vs能够识别并高亮这些shader的关键字。
主要有三个办法。
一个是利用Nvidia的CG:
CG又分为两个方法:
(一)是手工修改注册表:
1.到http://developer.nvidia.com/object/cg_toolkit.html#downloads下载一个Cg(不大,20M
而已)。
2.装上Cg后找到NVIDIA Corporation\Cg\msdev_syntax_highlighting\usertype.dat文件,将其复制到Microsoft Visual Studio 9.0\Common7\IDE去。
3. 打开注册表HKEY_LOCAL_MASHINE\SOFTWARE\Microsoft\VisualStudio\x.0
\Languages\File Extensions,(x.0表示什么版本的VS都可以)新建一项命名为“.cg” ,并在里面新建一个值,然后把“.cpp"中的
值复制到刚刚新建的那个值。
4. 重启VisualStudio,DONE!
(二)是:在装上Cg后找到NVIDIA Corporation\Cg\msdev_syntax_highlighting\usertype.dat文件,将其复制到Microsoft Visual Studio 9.0\Common7\IDE去。在最新cg版本中msdev_syntax_highlighting这个文件夹下还有有了自动注册表生成install_highlighting_vs*,可以直接根据对应的vs版本(仅支持vc6,vs2003,vs2005)点击对应的注册表即可。
这个方法有几个局限,一是只支持vc6,vs2003,vs2005几个版本,然后cg的关键字和HLSL还是有区别的,当然这个可以自己直接在usertype.dat里面修改。最后貌似只支持.cg后缀名的shader文件?
第二个HLSL高亮的方式是直接安装InteliShade,这个百度搜索下载,或者我的上传http://download.csdn.net/source/3526798。这个貌似只支持.fx的后缀名的shader文件。
最后一个HLSL高亮的方式就是自己动手了:
首先用记事本建一个文件格式的文件,命名为usertype.dat,再要用到的HLSL的关键字给敲进去,如:
float
float2
float3
float4
FLOAT
FLOAT2
FLOAT3
FLOAT4
float3x3
把所有的关键字弄上去,当然你也可以定义自己的一些关键字,或者下载我上传的userdata.dat,http://download.csdn.net/source/3526794。
接着把这个文件扔到VS的某个目录下X:\Program Files\Microsoft Visual Studio 8\Common7\IDE(X为VS安装盘)。
另外,现在打开HLSL或FX文件还是不会出现高亮,还得对VS进得一下设置。
打开 “tool”-> “options” -> “text editor” -> “file extension”,在右边的扩展名写上fx或hlsl,选择VC++编译器(其他没用过)。点击Add,再ok。
确定后重启起VS再打开fx或hlsl文件就可以看到HLSL的关键字变成系统默认的蓝色的了。