概要 この記事はレイトレ Advent Calendar 2016の20日目の記事です。 昨年8月、レイトレ合宿3!!!に初参加してレイトレを始めて実装したのですが、自分が一番最初に実装したマテリアルはランバート、完全鏡面とガラスでした。このような単純なマテリアルでも実際に絵が出力されると楽しいものです。しかし欲が出てくると Roughnessを持った金属表面を描画したい…。さらに言えばRoughnessをテクスチャで制御してディティールアップを狙いたい…。 という気分に駆られるようになります。しかし、いざ実装しようと調べてみるとGGX, Beckmann, Blinn, Phongなどのあらゆる人名が登場し、初学者の前に立ちはだかります。そこで今回はBlenderのCyclesレンダラーなどでも用いられているGGXという法線分布モデルを例に説明したいと思います。 2017/09/17追記
![脱・完全鏡面反射~GGXについて調べてみた~ - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/31b595a65576787985d7f1a37cb5958cccc49d0f/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-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZ0eHQ9JUU4JTg0JUIxJUUzJTgzJUJCJUU1JUFFJThDJUU1JTg1JUE4JUU5JThGJUExJUU5JTlEJUEyJUU1JThGJThEJUU1JUIwJTg0JUVGJUJEJTlFR0dYJUUzJTgxJUFCJUUzJTgxJUE0JUUzJTgxJTg0JUUzJTgxJUE2JUU4JUFBJUJGJUUzJTgxJUI5JUUzJTgxJUE2JUUzJTgxJUJGJUUzJTgxJTlGJUVGJUJEJTlFJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmdHh0LWNsaXA9ZWxsaXBzaXMmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz1hMzkzMGM1YTNkZjE4ZDVkMWJjNzlkNDhiOWFiYTI4MA%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwX1BoZWVtYV8mdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zNiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPTc2YjViZDE2NTgwNDAwOGFhOWM0OTFlNWUwNjg1MmVl%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3D737dd6100785c354ef0bee2f1371c670)