首页 > 其他分享 >Godot 字体边框shader

Godot 字体边框shader

时间:2024-11-19 12:07:29浏览次数:1  
标签:Godot outline color uv shader TEXTURE 边框 vec4 vec2

shader_type canvas_item;

uniform float outline_width = 1.0;
uniform vec4 outline_color: source_color = vec4(1,0,0,1);

void fragment() {
    vec2 uv = UV;
    vec2 uv_up = uv + vec2(0,TEXTURE_PIXEL_SIZE.y)*outline_width;
    vec2 uv_down = uv + vec2(0,-TEXTURE_PIXEL_SIZE.y)*outline_width;
    vec2 uv_left = uv + vec2(TEXTURE_PIXEL_SIZE.x,0)*outline_width;
    vec2 uv_right = uv + vec2(-TEXTURE_PIXEL_SIZE.x,0)*outline_width;
    
    vec4 color_up = texture(TEXTURE,uv_up);
    vec4 color_down = texture(TEXTURE,uv_up);
    vec4 color_left = texture(TEXTURE,uv_left);
    vec4 color_right = texture(TEXTURE,uv_right);
    
    vec4 outline = color_down + color_up + color_left + color_right;
    outline.rgb = outline_color.rgb;
    vec4 original_color = texture(TEXTURE,UV);
    
    COLOR = mix(outline,original_color,original_color.a);
}

标签:Godot,outline,color,uv,shader,TEXTURE,边框,vec4,vec2
From: https://www.cnblogs.com/draft/p/18554594

相关文章

  • css 表格圆角+边框不重叠
    .resource-table{border-collapse:separate;/*设置边框分离*/border-spacing:0;/*边框间距设置为0*/width:100%;/*表格宽度*/theadtr{background:#f0f3f5;th{color:#5a6066;border-top:1pxsolid#b......
  • 【Unity着色器插件】Better Lit Shader 2021 增强光照和材质表现,在性能和美观度上做出
    BetterLitShader2021是一款在Unity中广受欢迎的着色器插件,主要用于增强光照和材质表现。它在性能和美观度上做出平衡,非常适合希望在Unity中实现高质量视觉效果的开发者,特别是那些想要获得逼真光照效果的项目。主要功能多光照支持:支持多个光源在场景中同时使用,例如主光......
  • 关于Vulkan应用程序运行时编译GLSL Shader文件的方法
    最近在学习Vulkan,在相关参考书中给出的示例代码因为使用的VulkanSDK较老,出现无法构建成功的问题。而且示例代码给出的Vulkan应用程序运行时编译GLSLShader文件的方法放在现在已经是非常的麻烦。现在新版的VulkanSDK(1.3.X以上)将GLSL编译为SPIR-V非常方便了,可以使用Google提供的S......
  • 实现qt 窗口无边框拖拽
    无边框拖拽是参考Qt实战6.万能的无边框窗口(FramelessWindow)-Qt小罗-博客园的文章,对其代码进行修改而来。本篇一共会提供本人写的无边框的代码以及Qt实战6.万能的无边框窗口(FramelessWindow)-Qt小罗-博客园里面的完整代码供大家参考.代码使用的话,我是直接让widget继承于fr......
  • 教大家一个在嘉立创绘制好看边框的简单方法
    起因想要绘制一个带圆滑边角的矩形,奈何嘉立创这个方面的工作做的确实不是太好,谁让我用习惯了SW的圆滑功能,总是想单击两个边变化出一个圆角来,呜呜呜~开始操作绘制四个圆形,半径3mm,然后位置自己设置下,我总共要设置的边长为60mm,所以我设置所有圆形的圆心间彼此的距离为54mm接着绘......
  • Qml-ShaderEffect的使用
    Qml-ShaderEffect的使用ShaderEffect的概述ShaderEffect使用自定义的顶点和片段着色器用于渲染一个矩形。用于在qml场景中添加阴影、模糊、着色和页面卷曲等效果。Qt5和Qt6中ShaderEffect有一定区别,在Qt6中由于支持不同的渲染API,ShaderEffect是用统一的qsb文件来满足对......
  • godot tween
    extendsButton#Calledwhenthenodeentersthescenetreeforthefirsttime.func_ready(): pass#Replacewithfunctionbody.#Calledeveryframe.'delta'istheelapsedtimesincethepreviousframe.func_process(delta): passfunc......
  • CesiumJS 案例 P10:带边框的图片图层(Entity polyline 实现、Entity polygon 实现、Enti
    CesiumJSCesiumJSAPI:https://cesium.com/learn/cesiumjs/ref-doc/index.htmlCesiumJS是一个开源的JavaScript库,它用于在网页中创建和控制3D地球仪(地图)一、带边框的图片图层(Entitypolyline)<!DOCTYPEhtml><htmllang="en"> <head> <metacharset="U......
  • Pyhon—openpyxl修改某个表头的样式&其余单元格加边框线
    目录专栏导读1、库的介绍2、库的安装3、核心代码4、完整代码总结专栏导读......
  • 鼠标移入高亮边框效果
    效果展示鼠标移入边框效果一、布局//布局<template><divclass="container"><divclass="card"><divclass="inner">君不见,黄河之水天上来,奔流到海不复回。</div></div><divclas......