beiklive's blog beiklive's blog
首页
  • 语言学习

    • C/C++
    • Python
    • Qt
  • 系统&引擎

    • Linux
    • Godot
  • 啥都学

    • 夏姬八学
    • 好好学习
  • 折腾记录

    • 树莓派
    • Obsidian
    • 实践记录
  • 技术文档
  • 工具网站
  • Github项目
  • 友情链接
  • 关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

beiklive

全沾艺人
首页
  • 语言学习

    • C/C++
    • Python
    • Qt
  • 系统&引擎

    • Linux
    • Godot
  • 啥都学

    • 夏姬八学
    • 好好学习
  • 折腾记录

    • 树莓派
    • Obsidian
    • 实践记录
  • 技术文档
  • 工具网站
  • Github项目
  • 友情链接
  • 关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 着色器 - 修改指定位置颜色
  • gdscript 常用代码片段
  • 着色器 - 图片像素化
  • 着色器学习(零) 基础简介
  • 着色器学习(一) 基本语法
  • 着色器学习(二) 内建变量
  • 着色器学习(三) 内建函数
  • 着色器学习(四) 一些内建变量的使用
  • Note_Godot
beiklive
2024-05-15

着色器 - 图片像素化

前一篇

01.gdscript - 常用代码片段

pixels.gif

shader_type canvas_item;

uniform sampler2D custom_texture;
uniform float center_line : hint_range(0, 1) = 0.5;
uniform float pixelSize : hint_range(10, 100) = 10.0;

void fragment() {
    vec2 uv = UV;  // 获取纹理坐标
    
    // 对 UV 进行采样
    vec2 roundedUV = floor(uv * pixelSize) / pixelSize;
    // 从纹理中采样颜色
    vec4 sampledColor = texture(custom_texture, roundedUV);

    // 使用像素化UV生成颜色
    vec4 tempColor = vec4(roundedUV *1.1, 0.9, 1);
	
    // 使用 mix 函数混合左右两部分颜色
    vec4 finalColor = mix(tempColor, sampledColor, step(uv.x, center_line));

    COLOR = finalColor;
}


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
编辑 (opens new window)
#godot#着色器#像素
上次更新: 2024/05/15, 14:19:00
gdscript 常用代码片段
着色器学习(零) 基础简介

← gdscript 常用代码片段 着色器学习(零) 基础简介→

最近更新
01
爬虫技术与法律风险:个人开发者的注意事项
05-22
02
个人开发者的抉择:个人工作室 vs 公司主体 🤔
05-22
03
《计算机网络,自顶向下方法》笔记(一)
05-20
更多文章>
Theme by Vdoing | Copyright © 2024-2024 beiklive | 苏ICP备20038092号-2
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式