超雑訳 A Scalable and Production Ready Sky and Atmosphere Rendering Technique

Share

こんにちわ,Pocolです。
今日はEurographics Symposium on Rendering 2020のSébastien Hillaireによる”A Scalable and Production Ready Sky and Atmosphere Rendering Technique”を読んでみようと思います。
論文はhttps://sebh.github.io/publications/からダウンロードできます。
いつも通り誤字・誤訳があると思いますので,ご指摘いただける場合は正しい翻訳例と共に指摘して頂けると幸いです。

(さらに…)

超雑訳 Real-Time Global Illumination using Precomputed Light Field Probes

Share

こんにちわ、Pocolです。
今回は,McGuireらによる”Real-Time Globa Illumination using Precomputed Light Field Probes”を読んでみようと思います。
論文はhttps://research.nvidia.com/publication/real-time-global-illumination-using-precomputed-light-field-probesのページからダウンロードできます。GLSLコードなどもリンクページからダウンロードできます。
いつもながら,誤字・誤訳等があるかと思いますので,ご指摘いただける場合は正しい翻訳例と共に指摘して頂けると有難いです。
 

(さらに…)

Bowyer–Watson アルゴリズムって何?

Share

こんにちわ,Pocolです。
相変わらずGI周りの資料を漁っているのですが,ふと見たGDC 2012の”Light probe interpolation using tetrahedral tessellations”のAppendixの四面体化に関するところで,Bowyer-Watsonアルゴリズムというのが出てきました。


※図は,Robert Cupisz, “Light probe interpolation using tetrahedral tessellation”, GDC 2012より引用。

Bowyer-Watsonアルゴリズムというものを知らなかったので,あとで実装するためのメモを残しておこうと思います。

https://en.wikipedia.org/wiki/Bowyer%E2%80%93Watson_algorithm

Bowyer-Watsonアルゴリズムは、インクリメンタルアルゴリズムだそうです。
Wikipediaに、Bowyer-Watsonアルゴリズムの基本的な実装の擬似コードが載っています。計算量は、\(\mathcal{O}(n^2)\)ですが,効率的に計算する方法がいくつかあるそうです。例としては,三角形の接続性を利用して,すべての三角形をチェックせずに円周上の新しい点を含む三角形を見つけるようにするなどで\(\mathcal{O}(n log n)\)まで減らすことができるそうです。

function BowyerWatson (pointList)
   // pointListは、三角化する点を定義する座標の集合です。
   triangulation := empty triangle mesh data structure
   add super-triangle to triangulation // pointList内のすべてのポイントを完全に含むことができるように十分な大きさを持たなければならない.

   for each point in pointList do // 三角化にすべての点を一度に追加します.
      badTriangles := empty set

      for each triangle in triangulation do // まず、挿入によって無効になった三角形をすべて見つけます。
         if point is inside circumcircle of triangle
            add triangle to badTriangles

      polygon := empty set
      for each triangle in badTriangles do // ポリゴンの穴の境界を求めます.
         for each edge in triangle do
            if edge is not shared by any other triangles in badTriangles
               add edge to polygon

      for each triangle in badTriangles do // データ構造から削除します.
         remove triangle from triangulation

      for each edge in polygon do // ポリゴンの穴を再三角形化します.
         newTri := form a triangle from edge to point
         add newTri to triangulation

   for each triangle in triangulation // ポイントの挿入が終わったので,お掃除する.
      if triangle contains a vertex from original super-triangle
         remove triangle from triangulation

   return triangulation

GDCのスライドには「すぐに使えるソリューションが必要な場合は、Hang Siによる[TetGen]が非常にまともで、四面体メッシュの精密化のような追加機能や潜在的に有用な機能を持っています。」と書いてあります。該当する参考文献なのですが,https://www.berlios.de/software/tetgen/経由でC++の実装があるダウンロードページに飛べるようです。ライセンスはGNU Affero Public License v.3.0なので注意してください。

あとは,ちゃんとソースコードの中身見れていないのですが,Stride3d(元Xenko)のリポジトリにも四面体化のコードが上がっているようです。
https://github.com/stride3d/stride/blob/master/sources/engine/Stride.Rendering/Rendering/LightProbes/BowyerWatsonTetrahedralization.cs

これらを参考に実装すると良さそうです。

超雑訳 The design and evolution of the UBERBAKE light baking system

Share

こんにちわ。Pocolです。
SIGGRAPH 2020のPaperが一部公開され始めたみたいです。最近,GI関係が気になっているので,DAIRO SEYBらによる”The design and evolution of the UBERBAKE light baking system”の論文を読んでみようかなと思います。
論文自体はhttps://darioseyb.com/publication/seyb-20-uberbake/にて公開されています。
毎度で申し訳ないのですが,誤字・誤訳をご指摘いただける場合は,正しい翻訳例と共にご指摘いただけると大変ありがたいです。


 

(さらに…)

GitでSSL certificate problemが出る時

Share

忘れないようにメモ。
昨日ぐらいまで普通にGitでフェッチできていたのだが,突然
「SSL cerficatte problem: certificate has expired」
が出るようになった。

で,設定に問題があるな!と分かったのは同じリポジトリをcloneしているはずなのに,片方はアクセス出来て,片方はアクセスできない。
よってサーバー側のエラーじゃないとわかる。
最終的にどこが間違っていたかというと,リポジトリをhttps始まりで設定していたのがだめだった。
git@XXXXX
を指定するようにしたら無事に接続できるになった。
接続できない場合は,指定が間違っていないかどうかチェックすること。