[cocos]使用shader画一个色盘

本文介绍如何利用Cocos2d-x的shader技术,创建一个可以展示各种颜色的色盘。通过定制顶点着色器vsh和片段着色器fsh,结合lua脚本进行控制,实现色彩的动态变化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

fsh

#ifdef GL_ES
precision mediump float;
#endif

varying vec4 v_fragmentColor;
varying vec2 v_texCoord;



float angle(vec2 center, vec2 point)
{
	float angle = atan( (center.y - point.y) , (center.x - point.x) );
	angle = (angle >= 0.0) ? angle : 2.0 * 3.141592654 + angle;
	float singlePice = 360.0 / (3.141592654 * 2.0);
	return angle * singlePice;
}

float getColorWidget(float angle, float max, float min)
{
	float widget = 0.0;

	float _angle = angle - min;
	float _max = max - min;
	float _min = 0.0;
	float middle = _max * 0.5;

	if (_angle > _min && _angle <= _max)
		widget = ( _angle > middle ? _max - _angle : _angle ) / middle;
	return widget;
}

void main() 
{
	vec4 sum = texture2D(CC_Texture0, v_texCoord);
	float angle = angle(vec2(0.5, 0.5), vec2( v_texCoord.x, v_texCoord.y ));
	vec2 cord = vec2( abs( 0.5 - v_texCoord.x ), abs( 0.5 - v_texCoord.y)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值