ここで公開しているプログラムは、webmasterの修士論文に記載したプログラムを C++ に移植し、機能拡張したものです。
研究部分は高速化に関するもので、詳細は Nicograph 88 で発表したwebmasterの論文『画像生成におけるCPG(Constructive Plane Geometry)データの提案』を参照してください。
1988年に発表したアイディアですので、最新のレイトレーシングプログラムには全てに採用されていてもおかしくありません。
論文が手に入りにくい人のために、高速化について簡単に説明します。
この高速化は、レイトレーシングの無駄である『物体が存在しない方向に視線を飛ばして交点を求めようとする』作業を省くものです。 2次曲面のCSG表現において、物体の輪郭を求め、その中だけに視線を飛ばします。 直方体についても簡単に存在範囲の囲い込みを行っています。
これ以上の詳細は、論文とソースコードを参照してください。
このプログラムは、GPL で配布します。
このプログラムは形状定義ファイルのフォーマットに、参考文献である CQ出版 山本強著 『コンピュータグラフィックス』で採用されているものを流用しています。
そのため、形状定義ファイル関係で山本様の著作権が発生しますが、今回の配布に関して御本人に了解を求め、快諾して頂きました。 この場を借りてお礼を申し上げます。
具体的に書きますと、以下の事項全てを GPL に従って扱って良いとのことです。
また山本様の希望として、「参考文献の記述が参考になった場合、参考文献名を明示して頂けると嬉しい」とのことでしたので、再配布の際には、ご配慮願います。
ここの記述を読んで、「Webmasterはファイルフォーマットに著作権を認めている」なんていう間違った主張をしているお子様がいるようなので、その点について解説しておきます。
参考文献を読んだ方にはお分かりの通り、参考文献にはファイルフォーマットの詳細が解説されていません。 つまり、ファイルフォーマットを理解するには、プログラムソースを読む必要があるわけです。 プログラムソースを読んで理解したファイルフォーマットのアクセス方法には、当然のことながらソースコード著作者の著作権がおよびます。 この点について原著作者にうかがいをたてて、GPL ライセンスでの公開に許可をいただいたと言うことです。
個人的には、ファイルフォーマットであっても、独創的なものは何らかの手段で保護すべきだと思います。 しかし、そのために利用する法律は、著作権ではないでしょうね。
対応OS | ファイル | サイズ | バージョン | 日付 |
---|---|---|---|---|
unix | C++ソースと物体形状定義ファイル cg.tgz | 20,987 Byte | 1.2 | 2019年7月28日 |
makeするとできるバイナリのうちrt が従来の手法を用いたもので、cpg が高速化されたものです。
もしも、「原理を簡単に講義して欲しい」「市販のプログラムにこのアルゴリズムを追加したいが、GPL ライセンスでは困る」 というご希望がありましたら、お応えしますのでメイルでお問い合わせください。
この研究に関する御意見、御質問は、 メイル で。