POV-Ray

POV-Ray
原作者デビッド・カーク・バック、アーロン・A・コリンズ、アレクサンダー・エンツマン
開発者POVチーム
初回リリース1991年7月29日[ 1 ] [ 2 ] (1991年7月29日
安定版リリース
3.7.0.0 [ 3 ] ウィキデータで編集する / 2013年11月7日; 2021年7月8日
プレビューリリースv3.8.0-beta.2 (2021 年 8 月 9 日[ 4 ] ) [±] ( 2021-08-09 )
リポジトリ
書かれたC++
オペレーティング·システムクロスプラットフォーム
タイプレイトレーサー
ライセンスAGPL-3.0以降[ 5 ]
Webサイトpovray.org

Persistence of Vision Ray Tracer(略称:POV-Ray )は、テキストベースのシーン記述から画像を生成するクロスプラットフォームのレイトレーシングプログラムです。元々は、David Kirk BuckとAaron A. CollinsがAmigaコンピュータ用に開発したDKBTraceをベースにしています。また、作者のAlexander Enzmannの貢献により、以前のPolyray [ 6 ]レイトレーシングからも影響を受けています。POV-Rayは無料のオープンソースソフトウェアであり、ソースコードはAGPL 3.0以降のライセンスの下で利用可能です。

歴史

DKBTrace 2.12 でレンダリングされた台座の上の花瓶

1980年代のある時期、David Kirk BuckはUnixレイトレーサーのソースコードをAmigaにダウンロードしました。彼はしばらく実験した後、最終的に自分のイニシャルにちなんでDKBTraceと名付けた独自のレイトレーサーを開発することを決意しました。彼は他の人も興味を持つかもしれないと考え、シカゴの掲示板システム(BBS)「You Can Call Me Ray」にそれを投稿しました。1987年、Aaron A. CollinsがDKBTraceをダウンロードし、x86への移植作業を開始しました。彼とDavid Buckは協力していくつかの機能を追加しました。POVは、BBS時代の別のレイトレーサーであるRayshade( Rayshadeの書籍 を含む)と類似点(および類似点の借用)も持っています。

プログラムが予想以上に人気を博したため、機能追加への需要に応えられなくなりました。そのため、1991年7月、デイビッドはCompuServeの「GraphDev」フォーラムで活動するプログラマーチームにプロジェクトを引き継ぎました。同時に、デイビッドは、もはやメンテナンスを行っていないプログラムに自分のイニシャルを使うのは不適切だと感じました。当初は「STAR-Light」(Software Taskforce on Animation and Rendering)という名前が使われていましたが、後に「PV-Ray」、そして最終的には「POV-Ray」(Persistence of Vision Ray Tracer)という名前になりました。[ 2 ]この名前は、ダリの絵画「記憶の固執」に由来しています。[ 7 ] [ 8 ]

アプリケーションの機能と歴史の概要は、2008年2月のFLOSS Weeklyの第24話でDavid Kirk BuckとChris Casonが行ったインタビューで説明されている。[ 8 ]

特徴

POV-Ray でレンダリングされたガラスのシーン。ラジオシティフォトン マッピング焦点ぼかし、その他のフォトリアリスティックな機能を示しています (画像作成者: Gilles Tran )

POV-Rayは開発以来、大きく進化を遂げてきました。最新バージョンには以下の機能が含まれています。

POV-Ray の最大の魅力の一つは、サードパーティ製のアセットとツールの豊富なコレクションです。膨大な数のツール、テクスチャ、モデル、シーン、チュートリアルがウェブ上で見つかります。また、レイトレーシングや関連する3Dジオメトリ、コンピュータグラフィックスアルゴリズムの仕組みを学びたい人にとって、便利なリファレンスとしても役立ちます。

現在のバージョン

POV-Rayの現在の公式バージョンは3.7です。このバージョンでは以下の機能が導入されています。

前回のリリース (3.6) で導入された主な機能は次のとおりです。

2006 年 7 月、Intel 社は、SMP (対称型マルチプロセッシング) 実装の効率性を 評価し、新しいデュアル コアConroe プロセッサのデモンストレーションに 3.7 のベータ バージョンの使用を開始しました。

プリミティブ

構成立体幾何学(CSG)で作成された4つの球面のベン図のレンダリング。出典は画像の説明ページにあります。
POV-Ray でレンダリングされたいくつかの色付きサイコロ。CSG 、屈折焦点ぼかしが示されています。

POV-Ray は、トーラスハイトフィールドなどの標準的な3D 幾何学的形状に加えて、等値面(任意の関数の有限近似)、多項式プリミティブ( 15 次以下の多項式で定義される無限オブジェクト)、ジュリア フラクタル( 4 次元フラクタルの 3 次元スライス)、超二次楕円体(球と立方体の中間)、パラメトリックプリミティブ (内部ではなく表面を表す方程式を使用) などの数学的に定義されたプリミティブもサポートしています。

POV-Rayは内部的にオブジェクトを数学的定義を用いて表現します。つまり、すべてのPOV-Rayプリミティブオブジェクトは数学関数で記述できます。これは、シーン内のすべてのオブジェクトを構成するため に三角形メッシュを使用する、3Dモデルを含む多くのコンピュータプログラムとは異なります。

この事実により、POV-Ray には他のレンダリングおよびモデリング システムに比べていくつかの利点と欠点があります。POV-Ray プリミティブはポリゴン プリミティブよりも正確です。球、平面、円柱、トーラスなどで表現できるオブジェクトは POV-Ray レンダリングでは完全に滑らかで数学的に正確ですが、メッシュ ベースのモデリング ソフトウェアではポリゴンアーティファクトが目立つ場合があります。POV-Ray プリミティブは、ほとんどのポリゴン プリミティブよりも定義が簡単です。たとえば、POV-Ray では球は中心と半径だけで表現されますが、メッシュ ベースの環境では、球は多数の小さな接続されたポリゴン (通常は四角形または三角形) で表現する必要があります。

一方、スクリプトベースのプリミティブモデリングは、リアルなキャラクターや車のような複雑な人工物など、特定のオブジェクトを作成するのに必ずしも実用的な方法ではありません。これらのオブジェクトは、まずWings 3DBlenderなどのメッシュベースのモデリングアプリケーションで作成し、その後POV-Ray独自のメッシュ形式に変換することができます。

シーン記述言語の例

以下は、POV-Ray がレンダリングするシーンを記述するために使用するシーン記述言語の例です。背景色、カメラ、ライト、法線と表面仕上げを持つシンプルなボックスシェイプ、そして回転による変形効果の使い方を示しています。

スクリプトに基づいたPOV-Ray画像出力
#version 3.6 ; // 一般的な色の数を定義する別のファイルをインクルードします#include "colors.inc" global_settings { supposed_gamma 1.0 }// 画像の背景色を設定します(濃い灰色)background { color rgb < 0.25 , 0.25 , 0.25 > }// カメラを配置します// direction: カメラの視野などを設定します// right: 画像のアスペクト比を設定します// look_at: カメラの視線をどこへ向けるかを指定しますcamera { location < 0.0 , 0.5 , - 4.0 > direction 1.5 * z right x * image_width / image_height look_at < 0.0 , 0.0 , 0.0 > }// 光源を配置します// color: 光源の色を設定します (白) // translate: 光源を任意の場所に移動しますlight_source { < 0 , 0 , 0 > color rgb < 1 , 1 , 1 > translate < - 5 , 5 , - 5 > } // 別の光源を配置します// color: 光源の色を設定します (濃い灰色) // translate: 光源を任意の場所に移動しますlight_source { < 0 , 0 , 0 > color rgb < 0.25 , 0.25 , 0.25 > translate < 6 , - 6 , - 6 > }//ボックスを設定します// pigment: ボックスの色を設定します ("colors.inc" で定義されている "Red") // finish: ボックスの表面が光を反射する方法を設定します// normal: "agate" 組み込みモデルを使用して、ボックスの凹凸を設定します// rotate: ボックスを回転させますbox { < - 0.5 , - 0.5 , - 0.5 > , < 0.5 , 0.5 , 0.5 > texture { pigment { color Red } finish { specular 0.6 } normal { agate 0.25 scale 1/2 } } rotate < 45 , 46 , 47 > }

次のスクリプト フラグメントは、変数の宣言、割り当て、比較、および while ループ構造の使用を示しています。

スクリプトに基づいたPOV-Ray画像出力
#the_angle = 0と宣言します#while ( the_angle < 360 ) box { < - 0.5 , - 0.5 , - 0.5 > < 0.5 , 0.5 , 0.5 > texture { pigment { color Red } finish { specular 0.6 } normal { agate 0.25 scale 1 / 2 } } rotate the_angle } #declare the_angle = the_angle + 45 ; #end

モデリング

POV-Rayプログラム自体にはモデリング機能は含まれておらず、洗練されたモデル記述言語を備えた純粋なレンダラーです。この機能セットに対応するため、サードパーティは様々なモデリングソフトウェアを開発しており、その中にはPOV-Rayに特化したものや、POV-Rayのデータ構造のインポートとエクスポートをサポートするものなどがあり、無料のオープンソース3D作成スイートであるBlenderもその一つです。[ 12 ]

追加の POV-Ray 互換モデラーは、Povray.org: Modelling Programsからリンクされています。

2007年、POV-Rayは長年POV-Rayと併用されてきたインタラクティブな3DモデリングプログラムであるMoray (Wayback Machineに2020年4月28日アーカイブ)の権利を取得しました[ 13 ] 。しかし、2016年12月現在、Morayの開発は停滞しています[ 14 ] 。

ソフトウェア

開発と保守

POV-Ray ソースツリーへの公式な変更は、POV チームによって行われ、承認されています。パッチの提出やバグ報告のほとんどは、news.povray.orgニュースサーバー(Web インターフェースも利用可能)上の POV-Ray ニュースグループで行われています。POV-Ray のソースが公開されているため、サードパーティから非公式のフォークやパッチ適用版が提供されていますが、これらは POV チームによって公式にサポートされていません。

公式のPOV-Rayバージョンは現在シェーダプラグインをサポートしていません。[ 15 ]ラジオシティスプラインなどの一部の機能はまだ開発中であり、構文が変更される可能性があります。

プラットフォームサポート

POV-Ray 3.6は、MacWindowsLinux向けにコンパイル済み形式で配布されています。Mac版はIntel Macサポートしていませんが、Mac OS XはUnix系OSであるため、 Linux版はMac OS X上で コンパイル可能です。

SMP対応のバージョン3.7は、WindowsとLinuxで公式にサポートされています。v3.7の非公式Mac版も公開されています。[ 16 ]

POV-Ray は、互換性のあるC++コンパイラを持つ任意のプラットフォームに移植できます。

ライセンス

もともと、POV-Rayは独自のPOV-Rayライセンス、すなわちPOV-Ray 3.6配布ライセンス[ 17 ]とPOV-Ray 3.6ソースライセンス[ 18 ]の下で配布されていました。これらのライセンスでは、プログラムのソースコードとバイナリの自由な配布が許可されていましたが、商用配布とPOV-Rayの完全機能バージョン以外の派生作品の作成は制限されていました。

旧バージョンのソースコードは改変可能ですが、上記3.6およびそれ以前のライセンス制限により、 OSIFSFの定義におけるオープンソースまたはフリーソフトウェアではありませんでした。これは、コピーレフトライセンスとのライセンス非互換性により、より広範なFOSSエコシステムとのソースコード交換が不可能であったため、問題となっていました。

POV-Ray が元々、フリーソフトウェアのGNU 一般公衆利用許諾書(GPL) やその他のオープンソース ライセンスに基づいてライセンスされなかった理由の 1 つは、POV-Ray が GPL スタイルのライセンスが広く使用されるようになる前に開発されたためです。開発者は POV-Ray のリリース用に独自のライセンスを作成し、ソフトウェアへの貢献者は、自分の貢献が POV-Ray 3.6 ライセンスに基づいてライセンスされるという前提で作業していました。

2013年、バージョン3.7でPOV-RayはGNU Affero General Public Licenseバージョン3(またはそれ以降)の下で再ライセンスされました。[ 19 ]そのため、POV-Rayはそれ以来FSFの定義によればフリーソフトウェアであり、オープンソース定義によればオープンソースソフトウェアでもあります。

参照

  • Blender – 3Dモデリング、アニメーション、レンダリングのための無料のオープンソースソフトウェアプログラム
  • Kerkythea – Sketchupとの互換性を強化したフリーウェアのレイトレーシングプログラム
  • Sunflow – Javaで書かれた、フォトリアリスティックな画像合成のためのオープンソースのレンダリングシステム

参考文献

  1. ^ 「POV-Ray: ドキュメント: 1.1.5.3 歴史的な「バージョン履歴」" . povray.org . 2018年12月20日時点のオリジナルよりアーカイブ2018年12月19日閲覧。
  2. ^ a b「POV-Ray: ニュース」 . povray.org . 2018年12月19日閲覧
  3. ^ 「リリース 3.7.0.0」 2013年11月7日. 2018年3月15日閲覧
  4. ^ 「POV-Rayベータリリースv3.8.0-beta.2」 . POV-Ray. 2021年8月9日. 2021年8月29日閲覧
  5. ^ "POV-Ray License" . povray.org. 2016年3月15日時点のオリジナルよりアーカイブ2014年5月5日閲覧。
  6. ^ 「Polyray v1.7」 Alexander R. Enzmann. 2016年6月23日時点のオリジナルよりアーカイブ。 2016年7月5日閲覧
  7. ^ 「ドキュメント: 1.1.5 初期の歴史」 . POV-Ray. 2014年12月4日時点のオリジナルよりアーカイブ2014年5月5日閲覧。
  8. ^ a b「The TWiT Netcast Network with Leo Laporte」 Twit.tv、2008年2月7日。 2014年5月5日閲覧
  9. ^ Paul Bourke: Supershape in 3D Archived 2014-06-04 at the Wayback Machineは、非常に短いコードで作成されたPOV-Ray画像の例である。
  10. ^ 「POV-Ray: ドキュメント: 2.1.2.2 一般出力オプション」 . www.povray.org . 2023年9月8日閲覧
  11. ^ a b「POV-Ray: ドキュメント: 2.1.2.8 トレースオプション」 . www.povray.org . 2023年9月8日時点のオリジナルよりアーカイブ。 2023年9月8日閲覧
  12. ^ “Blender” . 2018年7月9日時点のオリジナルよりアーカイブ2018年7月9日閲覧。
  13. ^ 「ニュース:Morayの発表」 POV-Ray. 2007年2月1日. 2014年3月27日時点のオリジナルよりアーカイブ。 2014年5月5日閲覧
  14. ^ 「POV-Ray/povray: Vision Raytracerの持続性」 . POV-Ray. 2013年9月6日. 2022年8月5日時点のオリジナルよりアーカイブ2022年8月5日閲覧。
  15. ^このような実装については、例えばhttp://www.aetec.ee/fv/vkhomep.nsf/pages/povman2を参照してください。2007年2月7日、 Wayback Machineアーカイブされています。
  16. ^ megapov.inetart.net のpovrayunofficial_mac
  17. ^ “POV-Ray 3.6 Distribution License” . povray.org. 2021年8月13日時点のオリジナルよりアーカイブ。 2016年12月12日閲覧
  18. ^ “POV-Ray 3.6 Source License” . povray.org. 2022年3月23日時点のオリジナルよりアーカイブ2016年12月12日閲覧。
  19. ^ Cason, Chris (2013年11月8日). 「POV-Ray 3.7.0をダウンロード」2022年3月25日時点のオリジナルよりアーカイブ2013年11月11日閲覧。バージョン3.7以降、POV-RayはAGPL3(またはそれ以降)ライセンスの下でリリースされており、FSFの定義によればフリーソフトウェアです。[...] 完全なソースコードが公開されているため、ユーザーは独自のバージョンを構築でき、開発者はPOV-Rayソースの一部または全部を、互換性のあるライセンス(例えばAGPL3、あるいはそれ以降のバージョン)の下で配布されている限り、独自のソフトウェアに組み込むことができます。