Xcodeのspritekitを使ってゲームを作っています。
GLSLシェーダで解らない事があるので質問させてください。背景と穴の中を透過させた画像に、シェーダを使って変形させる事は出来たのですが、画像の透過している部分にも色が付いてしまいます。画像の透過の状態を保ったまま、白の円だけを変形させ、RGBで指定した色に変更させたいと思っています。色々調べて試してみたのですが初心者の為わかりませんでした。よろしくお願いします。
//wave.fsh void main( void ){ vec2 coord = v_tex_coord; float time = u_time; float deltaX = sin(coord.y * 3 * 10 + time * 4) * 0.01; float deltaY = sin(coord.x * 3 * 10 + time * 4) * 0.01; coord.x = coord.x + deltaX; coord.y = coord.y + deltaY; vec4 color = texture2D(u_texture, coord); color.rgb = vec3(0, 100, 200) / 255.0; gl_FragColor = color; }
下の画像の上が元画像で下がシェーダを使った状態のものになります。
//GameScene import SpriteKit class GameScene: SKScene,SKPhysicsContactDelegate { override func didMove(to view: SKView) { let shadersprite = childNode(withName: "sprite") as! SKSpriteNode let shadeFile = SKShader(fileNamed: "wave.fsh") shadersprite.shader = shadeFile } }
あなたの回答
tips
プレビュー