Shader-Part 2 笑脸

效果

过程

将画圆整合成函数,根据uv进行位置偏移

float Circle(vec2 uv, vec2 p, float r, float blur) {
	float d = length(uv - p);
	float c = smoothstep(r, r - blur, d);
	return c;
}

 两个眼睛,作差,在圆中扣除两个小圆

float c = Circle(uv, vec2(.0, .0), .4, .05);// 大圆

c -= Circle(uv, vec2(-.15, .1), .1, .05); // 两个眼睛
c -= Circle(uv, vec2(.15, .1), .1, .05);

半月,注意clamp函数

float mooth = Circle(uv, vec2(.0, .0), .24, .05); // 半月为两个圆相减
mooth -= Circle(uv, vec2(.0, .1), .3, .05);

mooth = clamp(mooth, 0.0, 1.0);
c -= mooth;

不用clamp函数会出现这种情况 ,负数的区域通过减法放大了

代码-shadertoy/Godot

#GDScript
extends ColorRect
func _ready():
	material.set_shader_parameter("resolution", Vector2($".".size))
	print($".".size)

#Shader
shader_type canvas_item;

uniform vec2 resolution; // 用于存储画布分辨率
uniform vec3 vec_col : source_color = vec3(0.4,0.6,0.8);

float Circle(vec2 uv,vec2 p,float r ,float blur){
	float d = length(uv - p);
	float c = smoothstep(r,r-blur,d);
	return c;
}

void fragment() {
	vec2 uv = UV - 0.5;
	uv.x *= resolution.x / resolution.y;
	float c = Circle(uv,vec2(0.0,0.0),0.4,0.05);
	c -= Circle(uv, vec2(-.15, .1), .1, .05);
	c -= Circle(uv, vec2(.15, .1), .1, .05);

	float mooth = Circle(uv, vec2(.0, .0), .24, .05);
	mooth -= Circle(uv, vec2(.0, .1), .3, .05);

	mooth = clamp(mooth, 0.0, 1.0);
	c -= mooth;
	vec3 col = vec_col*c;
	COLOR = vec4(col,1.0);
}



Word2Vec是一种用于生成词向量的算法,它可以将单词映射到一个高维空间中的向量表示。这些向量可以捕捉到单词之间的语义和语法关系。在引用\[2\]中提到的例子中,Word2Vec生成了一个词典文件和一个向量文件。词典文件记录了出现过的词汇以及它们的出现次数,而向量文件则包含了每个词汇的向量表示。 K-means聚类是一种常用的无监督学习算法,它可以将数据点划分为不同的簇。在使用K-means聚类时,我们可以将Word2Vec生成的词向量作为输入数据,然后将这些向量划分为不同的簇。这样可以帮助我们发现具有相似语义的单词。 在引用\[3\]中的代码示例中,wordsCluster函数接受一个文本路径和一个词向量大小作为参数。它首先读取文本文件中的内容,并将每个单词存储在一个列表中。然后,它使用Word2Vec算法将这些单词向量化,并将词向量保存在一个文本文件中。最后,它调用K-means聚类算法将词向量划分为不同的簇。 综上所述,Word2Vec和K-means聚类可以结合使用,通过将单词向量化并进行聚类,来发现具有相似语义的单词。 #### 引用[.reference_title] - *1* [利用word2vec实现关键词聚类](https://blog.csdn.net/orangefly0214/article/details/90518229)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [【数据挖掘实战】——使用 word2vec 和 k-mean 聚类寻找相似城市](https://blog.csdn.net/lxwssjszsdnr_/article/details/127756337)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [5-21 利用word2vec和kmeans对词语进行聚类处理](https://blog.csdn.net/weixin_46400833/article/details/117110246)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值