ねこでじ(Nekodigi)

Nekodigi’s diary

学習中の気づきをまとめています。応援よろしくお願いします

Processing-Ray

【Processing】Softbodyと多角形との当たり判定

成果物 www.youtube.com 今回は、前回のSoftbodyの当たり判定を多角形にも対応させました。これで2D上ではあらゆる形に対応できるようになったかと思います。多少荒ぶることはありますが、なかなかリアルに動作しています。 nekodigi.hatenablog.com 仕組み …

【Processing】Rayを使って内側・外側の判定

成果物 www.youtube.com 多角形の衝突を実装するために、内側外側の判定をしようとしていたところ、Rayを使って判定ができるようだったので、さっそく確認してみました。 仕組み Wikipediaでは、端からRayを発射しているようですが、今回は、チェックしたい…

【Processing】光の屈折、反射。

成果物 www.youtube.com Path Tracingに実装したかったのですが、うまくいきませんでした。ひとまず、ここでまとめておこうと思います。 コード 仕組み 光の屈折反射はこのような式で表します。ただ、今回は、ベクトルなのでこのように表すことができます。l…

【Processing】Ray Marchingで3Dマンデルブロ集合を表示する。

成果物 距離、反復回数、光の反射をもとに色を決めています。 精度は分かりませんが、輪郭はあっているような気がします。ただ、Unityで作られたデモと比べると、精度も速度も劣っている気がします。GPU演算ができないのが原因だと思います。※あくまで参考程…

【Processing】Ray Marchingを実装する!

成果物 www.youtube.com 今回は、Ray Tracing法の一種である、Ray Marchingのプログラムを作成しました。前回のPath Tracingでは、Rayと面との交差を求めていましたが、このプログラムでは、面との距離を求め、その分だけRayを進め、ぶつかるまで(距離が極…

【Processing】Distance Estimatorを可視化する。

成果物 www.youtube.com Ray Tracing方の一種である、Ray Marchingをやろうと思っていて、Distance Estimatorが重要な役割を果たしているので、視覚化してみました。 仕組み 一番近い障害物までの距離を求め、その分だけRayを進行方向に動かすということを繰…

【Processing】3DレンダリングエンジンにGlossyシェーダーと鏡面反射を実装する

成果物 以前の画像と比べて、光を反射する物体が二種類増えています。一つは鏡に似ている鏡面反射で、もう一つは、粗さ?を変更できるGlossyシェーダーです。(金属に近い感じです) 仕組み レンダリングエンジンの基本的な仕組みについてはこちらをご覧くだ…

【Processing】Path Tracingで3Dレンダリングエンジンを自作!

成果物 とうとう、Processingでレンダリングエンジンを自作することができました!Rayを大量に発射して光の反射を計算しているので、リアルな質感になっています。 仕組み Rayを使った、反射色の取得 カギになっているのがこの式です。x1が反射光の出発地点…

【Processing】線と球面、線と平面の交差

成果物 www.youtube.com 今回は、前回の2次元上でのRayを、3次元に拡張しました。球と無限の大きさの平面に対応しています。 解説 球 計算式はこちらです。Rayの原点をo、向きをl、円の中心をc、円の半径をrとしています。 Wikipediaに書いてあるとうり、交…

【Processing】RayCastでシンプルなRenderingをしてみた。

成果物 www.youtube.com 今回は、前回のRayCastのシステムをもとに、Rayが長ければ薄くRayが短ければ濃く表示するプログラムを作りました。長さも変更することで立体感を出しています。今回は、記念すべき100本目の記事です。これからも応援よろしくお願いし…

【Processing】Rayを反射させる

成果物 www.youtube.com 今回は、前回のRayCastingさせたのものをさらに反射させるプログラムを作りました。 仕組み 前回のRayCastingのプログラムをもとにしました。 nekodigi.hatenablog.com 今回は、こちらの式を使って計算しています。障害物にぶつかっ…

【Processing】文字をRayCastしてみた

成果物 www.youtube.com 今回は、マウス座標から障害物にぶつかるまでビームを飛ばすRayCastをやってみました。可能であればRayTracingにも挑戦しようと思います。 仕組み Ray(ビーム)と障害物(線)の交点を求め、交点までビームを伸ばすという処理を行っ…