`
sjkgxf7191
  • 浏览: 257108 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

使用着色器作为混合模式

阅读更多

原文:http://www.pixelbender.cn/?p=73

 

若要将着色器用于混和模式,请将 Shader 对象指派给前景显示对象blendShader 属性。

如果为 blendShader 属性指定非 null 值,显示对象的 blendMode 属性将自动设置BlendMode.SHADER

foreground.blendShader = myShader;

 

使用着色器作为混和模式时,着色器必须由至少两个输入 定义。

如示例所示,您未在代码中设置输入值。而是将两个混和后的图像自动用作着色器的输入

前景图像 设置为第二个 图像。

背景图像 设置为第一个 输入图像。

 

Pixel Bender中变量定义代码:

input image4 background;
input image4 foreground;
output pixel4 dst;

 

as代码:

// 定义背景图形
var backgroundShape:Shape=new Shape();
var g1:Graphics=backgroundShape.graphics;
var c1:Array=[0x336600, 0x80ff00];
var a1:Array=[255, 255];
var r1:Array=[100, 255];
var m1:Matrix=new Matrix();
m1.createGradientBox(300, 200);
g1.beginGradientFill(GradientType.LINEAR, c1, a1, r1, m1);
g1.drawEllipse(0, 0, 300, 200);
g1.endFill();
addChild(backgroundShape);

// 定义前景图形
var foregroundShape:Shape=new Shape();
var g2:Graphics=foregroundShape.graphics;
var c2:Array=[0xff8000, 0x663300];
var a2:Array=[255, 255];
var r2:Array=[100, 255];
var m2:Matrix=new Matrix();
m2.createGradientBox(300, 200);
g2.beginGradientFill(GradientType.LINEAR, c2, a2, r2, m2);
g2.drawEllipse(100, 0, 300, 200);
g2.endFill();
addChild(foregroundShape);

// 定义前景图形的混合模式
foregroundShape.blendShader=shader;
foregroundShape.blendMode=BlendMode.SHADER;

 

不适用 Pixel Bender的混合模式的截图:

 

使用 Pixel Bender的混合模式的截图:

  • 大小: 6.8 KB
  • 大小: 8.7 KB
分享到:
评论

相关推荐

    Unity__builtin_shaders_源码

    6. **着色器状态管理**:了解如何设置深度测试、混合模式、Alpha裁剪等渲染状态,以实现不同的视觉效果。 7. **宏定义和条件编译**:Unity的源码中会使用宏定义来支持不同平台的兼容性和多版本的兼容性,理解这一...

    HLSL初级教程.pdf

    通过定义不同的纹理和混合模式,可以在Effect文件中统一管理和调用相关的着色器资源,简化开发流程。 总之,HLSL作为一种强大的图形编程工具,为开发者提供了丰富的可能性,不仅可以用于游戏特效开发,还可以应用于...

    ColorChange.zip

    这可能涉及到属性定义、顶点和片段着色器的编写,以及使用空间位置、时间或者其他因素进行颜色的插值计算。通过研究这个示例,开发者可以学习到如何自定义Shader来实现独特的视觉效果,提升游戏或应用的视觉体验。

    Unity 3d ShaderLab 书籍和源代码01(共两部分)

    2. **属性(Properties)**:学习如何定义和使用着色器属性,这些属性可以作为控制视觉效果的参数,如颜色、纹理和浮点数。 3. **结构体(Structures)**:理解如何定义和使用结构体来组织和传递数据,例如顶点信息...

    openglProgram-1.rar

    3. 图形状态设置:开启深度测试,设置混合模式,以处理透明度等效果。 4. 渲染循环:在`paintGL()`中,设置视口,清除颜色和深度缓冲,使用着色器程序,将纹理应用到几何形状(可能是两个全屏矩形),然后绘制。 ...

    GLSL 多重纹理示例(源码)

    GLSL,全称为OpenGL Shading Language,是OpenGL图形库中用于编写着色器的语言,它允许程序员在GPU上执行计算,提升图形渲染的性能和效果。在这个“GLSL多重纹理示例”中,我们将深入探讨如何利用GLSL来实现多纹理...

    HLSL初级教程HLSL初级教程

    例如,可以通过Effect实现一个具有多种纹理混合模式的像素着色器。 ```hls // 示例:Effect中的多纹理像素着色器 technique10 MultiTexture { pass P0 { PixelShader = compile ps_4_0 MultiTexturePS(); } } ...

    着色和旋转(3、4).rar_opengl_opengl 旋转_opengl教程

    顶点着色器的使用和编写是这一阶段的重点。 3. **片段着色器(Fragment Shader)**:片段着色器处理像素级别的渲染,包括颜色计算、纹理采样等。在Lesson 3中,它可能用于实现复杂的颜色效果。 4. **图形管线**:...

    shading-lab:着色器创作实验室

    着色器编程涉及理解光照模型、纹理映射、混合模式等概念,以及如何利用GPU的并行处理能力来加速计算。 "creative-coding"标签表明,这个实验室不仅适用于常规的图形渲染,还鼓励创新和艺术性的编程实践。这可能包括...

    modelfragmentShader.txt

    根据提供的文件信息,我们可以深入探讨有关片段着色器(Fragment Shader)的相关知识点,尤其是在OpenGL环境中如何使用它们来处理纹理和颜色输出。 ### 片段着色器简介 片段着色器是图形管线中的一个可编程阶段,...

    cubemapGL:处理中的Cubemap反射环境着色器

    在Processing中,你可能还需要设置适当的视口、投影和模型视图矩阵,以及开启OpenGL的深度测试和混合模式,以确保正确的3D渲染和透明效果。 总的来说,“cubemapGL:处理中的Cubemap反射环境着色器”涵盖了立方体...

    Using SAS in FX and CgFX File Formats(在fx和cgfx文件中使用SAS)

    2. **图形状态配置**:SAS允许开发者指定渲染时所必需的图形状态设置,如混合模式、深度测试等。 3. **用户参数定义**:着色器通常需要外部提供的参数来控制渲染效果。SAS提供了定义这些参数的方法,并允许它们通过...

    OpenGL3.3_Lighting_BaseLight

    在OpenGL中,这些属性通常作为输入传递给着色器,用于计算最终的颜色输出。 8. **法线贴图**:法线贴图是一种用于模拟高细节表面的技术,即使在低多边形模型上也能实现复杂的光影效果。在OpenGL 3.3中,可以通过...

    win opengl qt draw texture mixed picture

    3. **创建着色器程序**:编译顶点着色器和片段着色器(在`texture.fs`中),使用`glCreateProgram`和`glLinkProgram`链接着色器。 4. **设置着色器属性**:将纹理ID传递给片段着色器,通常通过`glUniform1i`设置...

    WebGL实战学习代码

    3. **着色器(Shader)**:WebGL使用两种类型的着色器——顶点着色器和片段着色器。顶点着色器处理每个顶点,而片段着色器则处理每个像素。着色器是用GLSL(OpenGL Shading Language)编写的,它是一种针对GPU的语言。...

    openGL学习

    OpenGl可以看作是一个状态机,其中的状态包括颜色、深度测试、混合模式等。这些状态可以通过一系列函数调用来设置和修改。 **2.4 对象** 在OpenGl中,许多资源都是作为对象来处理的,例如顶点缓冲对象(Vertex ...

    gl-blend-demo:混合前景和背景图像的示例场景

    用法demo = require('gl-blend-demo')(opt) 构建一个示例,其中opt可以是: 选项(宽度、高度等) shader可以是创建着色器的函数(以gl作为第一个参数)或gl-shader对象画布宽度和高度默认为测试纹理大小 (512x512)...

    游戏学院网游4.0资料 S405 HLSL课件

    4. **像素着色器**:讲解像素着色器的用法,用于处理像素级别的颜色和纹理,包括纹理采样、混合模式、颜色空间转换等。 5. **高级特效**:深入探讨各种高级特效的实现,如雾效、水体模拟、火焰特效、后处理效果等,...

    OPENGL ES 3.0编程指南 原书第2版

    3.0版本提供了更多高级纹理操作和混合模式,能实现更细腻的图像效果。 4. **纹理采样器对象**:简化了纹理管理,将纹理状态封装在独立的对象中,可以重复使用,提高了代码的可读性和效率。 5. **多边形剔除**:...

    OpenGL3.3_PostProcessing_Inversion.rar

    OpenGL 3.3是图形库OpenGL的一个版本,它在2010年发布,提供了对现代图形硬件的强大支持,包括顶点...同时,这也是提升图形编程技能的好途径,因为后期处理涉及到许多高级概念,如纹理采样、混合模式、着色器编程等。

Global site tag (gtag.js) - Google Analytics