`
projectanarchy
  • 浏览: 14799 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

Vision引擎中着色器源代码编辑器

 
阅读更多

 

引言
vForge 内置功能丰富、模块化可驻的着色器源代码编辑器,复制、粘贴、关键词搜索和编译等该有的工具栏按钮都一应俱全。 编辑器着色器源代码为彩色,符合预期,可反映各种命令,有利于使代码更整洁。
 
代码编辑器显示相应库中选中着色器的顶点和像素着色器源代码。 

工具栏

编辑器选项卡

着色器被选中时,代码编辑器会显示 3 个编辑器选项卡:
 
第一个选项卡显示了可用于库中所有着色器的源代码。 不同着色器可引用该源代码中各不相同的函数入口点。
第二个选项卡显示顶点着色器的通路专用源代码。
第三个选项卡显示像素着色器的通路专用源代码。
编译着色器时,如果专用源代码可用,库的源代码会被忽略。
 
预定义代码块
预定义文本块图标可打开一个下拉列表,其内容会根据当前活动的编辑器选项卡动态改变。
 
选项卡 1 - 库源代码
可用菜单选项如下:
Common Shader Macros(通用着色器宏):

Vertex Shader Macros(顶点着色器宏):

Pixel Shader Macros(像素着色器宏):

Example Plain DX10 ConstatntBufferFrame:
 
cbuffer g_GlobalConstantBufferFrame : register (b0)
{
  float4x4  matP            : packoffset(c0);   // projection matrix
  float4x4  matEye          : packoffset(c4);   // eye matrix
  float4x4  matInvEye       : packoffset(c8);   // inverse eye matrix
  float4    contextCP       : packoffset(c12);  // context clip planes: near, far, 1/(far-near)
  float4    contextPPright  : packoffset(c13);  // context projection plane right
  float4    contextPPup     : packoffset(c14);  // context projection plane up
  float4    contextPPdir    : packoffset(c15);  // context projection plane direction
  float4    timer           : packoffset(c16);  // Time: timer, time difference
  float4    eyePos          : packoffset(c17);  // eye position
  float4    eyeDir          : packoffset(c18);  // eye direction
  float4    depthFog        : packoffset(c19);  // linear depth fog parameter: near, far, 1/(far-near)
  float4    depthFogCol     : packoffset(c20);  // linear depth fog color
  float4    gAmbientCol     : packoffset(c21);  // global ambient color
  float4    lightmapMul     : packoffset(c22);  // lightmap multiplier (skalar) 
}
选项卡 2 - 顶点着色器

Example Color:
#include <Shaders/VisionCommon.inc>
 
//
#include <Shaders/VisionCommon.inc>
 
#ifdef _VISION_DX10
cbuffer g_GlobalConstantBufferObject : register (b1)
{
  float4x4 matMVP  : packoffset(c4);   // model view projection matrix
}
#else
  float4x4 matMVP  : register(c8);
#endif
 
struct VS_IN
{
  float3   ObjPos  : POSITION;
  float4   Color   : COLOR;
};
 
struct VS_OUT
{
  float4   ProjPos : SV_Position;
  float4   Color   : COLOR;
};
 
VS_OUT vs_main( VS_IN In )
{
  VS_OUT Out;
  Out.ProjPos = mul( matMVP, float4(In.ObjPos, 1.0f) );
  Out.Color = In.Color;
  return Out;
}
选项卡 3 - 像素着色器

Example Simple:
#include <Shaders/VisionCommon.inc>
 
#ifdef _VISION_DX10
  Texture2D <float4> BaseTexture        : register(t0);
  sampler            BaseTextureSampler : register(s0);
#else
  sampler2D          BaseTexture        : register(s0);
#endif
 
struct PS_IN
{
  float4 ProjPos : SV_Position;
  float2 UV0     : TEXCOORD0;
};
 
float4 ps_main( PS_IN In ) : SV_Target
{
  float4 diffuse = vTex2D(BaseTexture, BaseTextureSampler, In.UV0);
  return diffuse;
}
测试编译和日志
您可以随时按下测试编译图标来检查代码的有效性。 编译完成后将显示日志,任何问题和错误都会在其中列出。 鼠标左键单击任意日志条目可展开该项内容,显示报告的更多详情。

   提示:着色器日志可固定在编辑器面板中,或收起为代码窗口底部的图标。
 
预定义符号
为了简化着色器的编写过程,您可以按 CTRL + 空格键查看预定义符号列表,例如数据类型和函数。 然后,您可以选择一个符号,该符号将被插入到代码中。 例如,在文档中添加”float4”的结果如下:

转自:projectanarchy中文社区

分享到:
评论

相关推荐

    Image Processing Analysis and Machine Vision第三版的源代码part 4

    Image Processing Analysis and Machine Vision第三版的源代码part 4

    Proteus + μVision开发走马灯实例源代码

    用户下载后,可以直接在μVision中打开工程,通过阅读和修改代码,加深对单片机控制LED和循环逻辑的理解。 总结来说,这个资源涵盖了Proteus仿真和μVision开发的实践应用,对于学习单片机编程和电子电路设计的学生...

    Image Processing Analysis and Machine Vision第三版的源代码part 2

    Image Processing Analysis and Machine Vision第三版的源代码part 2

    Image Processing Analysis and Machine Vision第三版的源代码part 1

    Image Processing Analysis and Machine Vision第三版的源代码part 1

    Image Processing Analysis and Machine Vision第三版的源代码part 3

    Image Processing Analysis and Machine Vision第三版的源代码part 3

    Vision Transformer项目源代码

    Vision Transformer实现代码和预训练模型,主要包含以下网络: (1)jx_vit_base_patch16_224_in21k (2)jx_vit_base_patch32_224_in21k

    Mastering OpenCV with Practical Computer Vision Projects 电子书及源代码

    源代码部分是本书的重要补充,它包含了书中所有示例和项目的完整代码,读者可以直接运行和修改,以加深理解并适应自己的需求。这些代码提供了从简单到复杂的各种示例,涵盖了OpenCV库的大部分功能,对于学习和调试是...

    用于更改着色器以修复 3D Vision 中的游戏的 DirectX 挂钩库.zip

    用于更改着色器以修复 3D Vision 中的游戏的 DirectX 挂钩库用于更改着色器的 DirectX 挂钩使用这些包装器和固定着色器通常可以制作出符合 3D Vision 品质的游戏,打猎允许搜索着色器然后将其导出为二进制文件。...

    Opengl着色器播放器

    7. **自定义着色器**:在播放器中,用户可能有机会加载或编辑自己的着色器,实现个性化的视觉效果。这需要了解GLSL(OpenGL Shading Language),它是为OpenGL编写着色器的语言。 8. **硬件加速**:利用OpenGL,...

    源代码Computer Vision with OpenCV 3 and Qt5

    Code to accompany Computer Vision with OpenCV 3 and Qt5: Build visually appealing, multithreaded, cross-platform computer vision applications

    OpenCV 2 Computer Vision Application Programming Cookbook源代码

    OpenCV 2 Computer Vision Application Programming Cookbook一书配套的源代码

    HMC833驱动源代码

    最后,"keil"可能是指Keil μVision集成开发环境,它是C/C++语言编写微控制器软件的常用工具,用于编译、调试驱动源代码。开发者通常会在该环境中编写、编译和测试驱动程序,确保其在目标硬件上的正确运行。 总结来...

    Google Cloud Vision API OCR 使用案例 Python 源代码

    此案例为Google Cloud Vision API OCR 使用案例 Python 源代码,通过此案例,我们将: - 了解如何从 Google 云管理面板获取我们的 Google Cloud Vision API 密钥/JSON 配置文件 - 配置我们的开发环境以使用 Google ...

    keilc51源代码

    除了编译器,Keil还提供了一个集成开发环境(IDE)——μVision,它集成了编辑器、编译器、链接器、调试器等功能,大大简化了开发流程。在这些源代码中,我们可能看到如何设置工程、组织文件以及调试代码的实例。 ...

    源代码-C#与halcon开发的流程式机器视觉软件系统

    本项目“源代码-C#与halcon开发的流程式机器视觉软件系统”旨在为学习者提供一个实践平台,通过C#编程语言和Halcon视觉库的结合,构建出一套可视化的流程式机器视觉软件系统。本文将深入探讨这个系统的开发过程、...

    CVI 串口 源代码中文注释

    源代码中的CVI,可能指的是“Control Vision Interface”,这是一种由National Instruments公司开发的图形化编程环境,用于创建科学和工程应用。在CVI中处理串口通信,意味着开发者可以利用其提供的库函数和工具,...

    基于C++和opencv的图像编辑器软件及源代码.zip

    标题中的“基于C++和opencv的图像编辑器软件及源代码.zip”表明这是一个使用C++编程语言,并结合了OpenCV库开发的图像编辑器项目。OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉库,它包含...

    人脸检测源代码 OpenCV

    人脸检测是计算机视觉领域中的一个核心任务,OpenCV(Open Source Computer Vision Library)是一个强大的开源库,提供了多种图像处理和计算机视觉算法。本资源提供的是一套基于Adaboost算法的人脸检测源代码,专为...

    USB设备测试速度源代码

    - 在USB设备速度测试中,Keil C源代码可能直接操作USB控制器寄存器,控制数据传输,并计算传输速率。 3. **VC++**: - Visual C++是微软开发的一款集成开发环境,主要用于创建Windows平台的应用程序。 - 对于USB...

    android 二维码生成器源代码

    本文将深入探讨Android二维码生成器的源代码,揭示其背后的技术原理和实现方法。 首先,我们要知道二维码(Quick Response Code)是一种二维条形码,它能够存储比传统一维条形码更多的信息。在Android应用中,生成...

Global site tag (gtag.js) - Google Analytics