概要
Unityのレイマーチングシェーダーでy軸に縮めた球と普通の球の交差部分を表示したいのですが、見る角度を変えると表示されなくなってしまいます。表示できるようにしたいです。
ソースコード
距離関数を取得する部分
float getSdf(float3 pos){ float3 original_pos = pos; float dist = 0; pos = float3(pos.x - 0,pos.y - 0,pos.z - 0); pos.x *= 1; pos.y *= 4; //ここを1にすると表示されるのでここが問題だと思うのですが… pos.z *= 1; float dist0 = sdSphere(float3(pos.x - 0, pos.y - 0, pos.z - 0), 2); pos = original_pos; float dist1 = sdSphere(float3(pos.x - 0, pos.y - 0, pos.z - 0), 1); float dist2 = max(dist1, dist0); dist = dist2; return dist; }
ちょっと興味を引かれまして試してみようかと思ったのですが、レイマーチングによるレンダリングのための基礎部分はどうなっていますでしょうか。シーンのセットアップ手順およびレイマーチングシェーダーのコード全体をご提示いただくか、あるいはどこかのWebサイトの手順に従って作成なさった場合は、それをご提示いただけると参考になりそうです。
やり方はいろんなサイトに載っていた方法でやっているので、特に変なことはやっていないと思います
参考にしたサイト
https://gurutaka-log.com/ray-marching-tutorial
https://github.com/gam0022/UnityBible2-RaymarchingTutorial
https://scrapbox.io/sayachang/Unity%E6%9D%BF%E3%83%9D%E3%83%AA%E3%83%AC%E3%82%A4%E3%83%9E%E3%83%BC%E3%83%81%E3%83%B3%E3%82%B0%E5%85%A5%E9%96%80
変形方法はこの動画を見ました
https://www.youtube.com/watch?v=AfKGMUDWfuE
コードは公開できるかが微妙なので確認を取ってきます

回答1件
あなたの回答
tips
プレビュー