はじめに 「Shadertoy はじめました - Qiita」の子記事です。My First Shader Sound (※音が出ます)を作った際にいろいろ気づいたトピックスを小さめの記事にしていきたいと思います。 この記事では、SphereTracingで形状を表現する距離関数(distance function)について考察します (残念ながら「解説」できるほど理解が深くないです)。iq氏によるリファレンスサンプルから一歩進んで、オリジナル形状の距離関数を定義したい人にとって理解の一助につながれば幸いです。 予め断っておくと、途中経過はそこそこ真面目に書きましたが、最後は不条理です。 六角柱の距離関数 iq氏によるリファレンスには「Hexagonal Prism」という六角柱の距離関数が示されています。 float sdHexPrism(vec3 p, vec2 h) { vec3 q
![[SphereTracing:距離関数]角丸め六角柱 - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/7e96613b686c1be05823476b4c5e582092101712/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9JTVCU3BoZXJlVHJhY2luZyUzQSVFOCVCNyU5RCVFOSU5QiVBMiVFOSU5NiVBMiVFNiU5NSVCMCU1RCVFOCVBNyU5MiVFNCVCOCVCOCVFMyU4MiU4MSVFNSU4NSVBRCVFOCVBNyU5MiVFNiU5RiVCMSZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTU2JnR4dC1jbGlwPWVsbGlwc2lzJnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9YWY3ZTZiOTQxNzM2Yjg2NzFlMjFmNGViYTdjMzg1ZWI%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwa2VpbV9hdF9zaSZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9NmQxYjdjNmUwMmVmYjRjOWNkMjdmNjUzMzBlMDU3MjA%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3Dd36bfba51431b22f1d6ee3f4be0954ab)