ヒートマップシェーダ
#Unity #シェーダ
referenceあったが、サーフェスシェーダで実装されている、これをShader Graphで移植してえヲ.icon
https://www.youtube.com/watch?v=Ah2rHGtOSbs
CPU側はやること一緒なので、ソースコードを写経した
UnityHeatmapShader/QuadScript.cs at main · ericalbers/UnityHeatmapShader · GitHub
球が当たった場所が、uv座標のどこなのかをシェーダに送っている
が、Shader Graphになんか上手く送れないので、簡単なものでテストしてみる
スペースを押したら、色を変える
code:SendShaderTest.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class SendShaderTest : MonoBehaviour
{
Material mMaterial;
void Start()
{
mMaterial = GetComponent<Renderer>().material;
}
void Update()
{
if(Input.GetKeyDown(KeyCode.Space)) {
mMaterial.SetColor("_Test", Color.red);
}
}
}
https://scrapbox.io/files/613757bf07726e001d2585d2.png
調べたら、これで出来そうなんだけど、押しても色は変わらないもちょぐぬぬ.icon*10
どうやら、本当のプロパティの名前を書かないといけないらしい
【Unity】ShaderGraph導入 - おやま氏の覚え書き
https://scrapbox.io/files/61375ac3ce60060020dba427.png
真名、長すぎでは???ヲ.icon*3
なにはともあれ、動作したぞ~
mMaterial.SetColor("Color_d10a4d9df24c454c934307af620dd420", Color.red);
https://scrapbox.io/files/61375bea02a64b001dd238d7.gif
接触し続けてる場所をシェーダに送るやつは実装できた
https://scrapbox.io/files/61387c460c62b0001fe95605.gif
https://scrapbox.io/files/61387c7964a411001d9727a5.png
が、次の問題、どうやってバッファをため続けるのか?
bufferノードないの?ヲ.icon
A.床を映したカメラからレンダーテクスチャを作成する
https://scrapbox.io/files/6139ce33ed0f15001f4113ad.gif
RGBからHSVに色空間を変換すると、、、
https://scrapbox.io/files/6139ce5c329741001dba2b2b.gif
なんとなく見えてきた?ヲ.icon
足跡パーティクルの追加
https://scrapbox.io/files/614b007de3ddd6001dd39e8f.gif
速度から角度に変換
【Unity】二次元ベクトルから角度を求めたり、角度から二次元ベクトルを求める処理 - うにてぃブログ
ベクトルをatan2()に突っ込んでおしまい