【現在のバージョン】 Rel 1.3 (2014/06/07) ●カラー画像の統一的取扱および色座標の定量的取扱いのため,以下の関数・クラスを追加 ColorMatchingCIE1931XYZ(),ColorSRGB(),ColorXYY(),ColorImageクラス ●Colorクラスに次のメンバー関数を追加. GetRed8bit(),GetGreen8bit(),GetBlue8bit() ●AutoNormalVector()の修正.EleminateDuplicatePoint()を呼び出さなくなった.理由:両面化されているポリゴンがある場合.頂点を統合すると頂点の法線ベクトルがゼロになってしまうため. ●SegWaveFieldクラスに次のメンバー関数を追加 コンストラクタSegWaveField(const WaveField& wf, int mx, int my, const char* fn = NULL) GetM(), Segment(int m), Exist(int m), CombineInto(), SaveAsCombinedWf(), ShiftedAsmPropWhole(), ShiftedFresnelPropWhole(), ShiftedAsmProp(double dz), ShiftedFresnelProp(double dz) ●SegWaveFieldクラスのコピーコンストラクタが不完全であったのを修正. ●SurfaceBuilder::AddObjectFieldSb()の引数としてbackgを追加.backg=falseなら開始位置への伝搬計算を省略. Rel 1.2 (2014/04/04) ●SurfaceBuilderクラスのスイッチバック法関数AddObjectFieldSb()の引数にexactスイッチ(bool型)を追加.exact=trueとすることによりサブオブジェクト間の伝搬計算にExactAsmProp()を呼び出すようになる.スイッチバック法開始前の背景光波フィールドにサンプリング領域全体に広がる光波が含まれている場合は,このスイッチをtrueにすることにより,背景光波のエイリアシングを防ぐことができる.ただし計算速度は遅くなる.デフォルトではexact=false. Rel 1.1 (2013/11/30) ●SurfaceBuilderクラスにスイッチバック法の関数を追加  AddPolygonFieldSb(), AddObjectFieldSb(), AddObjectFieldSbUnity() ●SurfaceBuilder::SetDefaultInterpol()とGetDefaultInterpol()の追加.既定の補間方法を設定・取得する. ●SurfaceBuilder::AddPolygonField()とAddObjectField()において補間方法を省略した形式で,既定の保管方法を用いるように変更(従来は省略時はBICUBIC). ●グローバル関数GetNumOfTextureMqo()とGetTextureNamesMqo()関数の新規追加.下記の新しいUVマッピングで必要. ●UVマッピングを行うために新しいTfbUvMappingクラスの追加(従来のTfbUVMapppingクラスとは一文字違うだけなので注意(UVとUvの違い)).新しいLoadMqo()関数と組み合わせた場合,ポリゴンの並べ替え等を行っても正しくUVマッピングが行える. ●LoadMqo()関数の全面改訂.以前のLoadMqo()関数はLoadMqoOld()にリネームされている.新しいLoadMqo()関数は以前のものと引数の構成が変化している. ●Textureクラスの新規追加. ●PolygonクラスとIndexFaceSetクラスにUVマップ情報を追加.それに合わせて以下を追加.  IndexFaceSe::SetTexMap()/GetTexMap,SetTexNum()/GetTexNumの追加  Polygon::SetTexMap()/GetTexMap,SetTexNum()/GetTexNumの追加 ●TexMapクラスの新設. ●IndexFaceset::SaveAsDxf()の新設. ●IndexFaceset::DivideByDepth()でカラーがコピーされないバグをフィックス. ●IndexFaceset::DivideByDepth()でfrontまたはback引数として自分自身を取ることができるようにした.すなわちmodel.DividByDepth(model, back, z)あるいはmodel.DividByDepth(front, model, z)というの記述が可能. ●IndexFaceset::SortByDepth()メソッドの新設. ●IndexFaceset::Clear()メソッドの新設. ●Textureクラスの新設. ●複数のテクスチャを有するmqo形式データを読み込む関数を実装.(By 山下裕士) IndexedFaceSet::LoadMqo()マルチバイト文字列版とワイド文字列版 PSL1 正式版 Rel 1.0 (2013/03/05) ●mqo読み込みおよびuvマッピング関係の以下のバグフィックス.(By 山下裕士)  mqoで複数オブジェクトがある場合の読み込みがおかしい.  UV座標から、WaveFieldに読み込んだテクスチャのIJ座標を求める時にエラーが出る場合がある.  ポリゴンの端でのテクスチャの塗り漏れ.  UV座標が0以下と1以上の場合エラーが出る. ●複数のwfファイルから等色関数を用いてカラーBMP画像を合成するProduceColorImage()関数を実装.(By 山下裕士) PSL1 Beta3 Rel 0.99.03 (2012/12/18) ●メタセコイアmqo形式を読み込むLoadMqo()をグローバルとIndextedFacesetクラスに追加.(By 山下裕士) ●メタセコイアmqo形式ファイルからuvマッピングを行うLoadMqo()をグローバルとIndextedFacesetクラスに追加.(By 山下裕士) ●メタセコイアmqo形式ファイルからuvマッピングを行うTfbUVMappingクラスを追加.(By 山下裕士) ●Rel0.99.02において導入したSurfaceBuilder::GetDiffractionRect()の変更部分を元に戻した.Rel0.99.02を用いた場合に生じるポリゴンが欠ける症状はこの部分の変更に起因している. ●SurfaceBuilder::GetDiffractionRect()がsomethingwrongエラーを発生するバグをフィックス. ●IndexedFacedSet::SplitRect()関数をBreakQuad()に名称変更. ●IndexedFacedSet::SplitRectAll()関数をBreakQuadAll()に名称変更. ●鏡面レンダリングに対応するための変更  SurfaceBuilder::SetRemappingShift()とGetRemappingShift()の新設  TfbPaint::PaintTfb()の引数の最後にSurfaceBuilder*を追加.  TfbPaintを継承する全クラスのPaintTfb()で同じ引数を追加 ●鏡面レンダリングのためのTfbSpecularFlatShadingクラスとTfbSpecularSmoothShadingクラスを新設(by 西). ●ImagingViewer::SaveAsReducedWf()の追加 ●SegWaveField::SaveAsSegWf()とSegWaveField::LoadSegWf()で日本語ファイル名が使えなかったバグをフィックス ●AutoNormalVector()を再実装し高速化.EliminateDuplicatePoint()を内部的に呼び出すようになった. ●拡散/鏡面スムースシェーディングで頂点法線ベクトルが設定されない場合のエラー検知をしていなかったバグをフィックス.AutoNormalVector()を実行していない場合にエラーで停止するようになった. PSL1 Beta2 Rel 0.99.02 (2011/12/13) ●IndexedFaceSetクラスの改造  いくつかの基本メソッドをinlineに移行  RemovePolygon(),EliminateDefectPolygon(void)メソッドを新設  DivideByDepth(),GetLineTable(), EliminateDuplicatePoint()メソッドを新設  AddWireFrameField()メソッドの新設 ●Debugモードのユーザープログラムが通常のPSL(ReleaseモードでビルドされたPSL)を呼び出すと,SurfaceBuilder::AddObjectField()が例外をスローする模様.コンパイラのバグではないかと考えられる.Debugモードでの実行を可能にするため,psl.hをインクルードする前にシンボル「_PSL_DEBUG」が定義されている場合は,psl_D.libをリンクしpsl_D.dllを実行するように変更.これらはDebugモードでビルドされたPSLであり,デバッグモードのユーザープログラムとリンクしてもエラーを起こさない.ただし,速度は極めて遅くマルチスレッディング機能も働かない. ●SurfaceBuilderにおけるポリゴン光源計算アルゴリズムを変更.従来フレームバッファ平面における回折範囲の中心を通る光軸とポリゴン平面の交点を回転中心としていたため,ホログラムに対して垂直に近いポリゴンではtfbが巨大になる場合があった.そこで,ポリゴンの中央を回転中心とするように変更.これによってtfbは最小になるがpfbが大きくなる場合があり,その結果必要メモリ量と計算時間が増加する可能性がある. ●ヘッダファイルの配置を変更.psl.hのみincludeフォルダに置き,それ以外のヘッダはpsl/*.hに配置するようになった. ●libとdllの配置を変更.64ビット版ではこれらはlibとbinフォルダの直下に配置し,32ビット版ではそれぞれ,lib/win32,bin/win32の下に配置される.ユーザー側でのpathおよびVSのディレクトリ設定の変更が必要. ●インストールフォルダのフォルダ名dataをSampleDataに変更し,cube.wrl等いくつかのモデルデータを追加. Rel 0.99.01 (2011/11/26) ●PSL1ベータバージョン ●GlModelクラス, GlVectorクラスの追加 ●opengl32.libをリンクするようになった Rel 0.86.00 (2011/10/10) ●ImagingViewer::View(SegWaveField& wf, wfl::Point p), ImagingViewer::ViewWf(const char* fname, wfl::Point p)のバグフィックス.Init()によりスクリーンサイズを変更した場合,スクリーンがクリアされていないバグを修正. ●IndexedFacedSet::LoadPov()を一つのプログラムで2回以上呼び出すと失敗するバグを修正 ●IndexedFacedSet::SplitRect()関数を新設 ●IndexedFacedSet::SplitRectAll()関数を新設 ●SurfaceBuilder::AddObjectField()関数にメモリ使用量監視コードを試験的に追加. メモリ使用量が90%を超えた場合,それを検知したスレッドはメモリを取得せず待機モードにはいる.シングルスレッド実行時にはデッドロックする.待機モード中は1分毎にメッセージを出す. ●IndexedFacedSet::Add()関数を新設 ●SurfaceBuilder::ThreadBlockFreeRatio()関数を新設.上記メモリ使用量監視の閾値を設定. ●SegWaveField::DisposeCurrentSeg()を新設. ●SegWaveField::ShiftedAsmProp()とSegWaveField::ShiftedFresnelProp()で計算終了後にsource側のカレントセグメントを廃棄していなかったので,これを廃棄するように変更. Rel 0.85.01 ●SegWaveFieldクラスにコピーコンストラクタを追加.これによりSegWaveFieldクラスをstl::vectorの配列として使えるようになった. Rel 0.85.00 ●TfbPaint, TfbFlatShading, TfbOlthoProjectMapping, TfbProjectTexFlatShading, TfbGouraudShading, TfbPhongShadingの各クラスのバグをフィックス. ●AddObjectField()によるレンダリングに必要なメモリ量が大幅減少し,パフォーマンスが数倍アップ. ●AddObjectField()でwflのスレッド数を自動制御するように仕様変更 ●フォンシェーディングを行うTfbPhongShadingクラスを新設(by 西) ●スレッド数自動制御を行わないAddObjectFieldMt()を新設 ●GetShader(),GetTexture()関数の新設 Rel 0.84.00 ●SegWaveFieldクラスにDispose(), LoadSegBmp(), LoadSegBmpAuto()を追加 ●ImagingViewer::SaveAsReducedLw(),ImagingViewer::SaveAsReducedBmp()が内部状態を変えないように修正 ●ImagingViewer::SetOrigin()でWaveFieldのSetOrigin()をオーバーライド ●ImagingViewer::RestoreViewpoint()を新設 ●ImagingViewer::ViewHologramSw(),ViewHologramPw()を新設 ●SegWaveField::SaveAsCombinedBmp()を新設 Rel 0.83.00 ●IndexedFaceSet::Split(), AutoSplit()の新設 (by 東) ●TfbGouraudShadingクラスの新設 (by 西) ●IndexedFaceSet::AutoNormalVector()の新設 (by 西) Rel 0.82.00 ●TfbOlthoProjectMappingクラスの新設 ●SurfaceBuilder::SetTexture()の新設 Rel 0.81.01 ●極端に小さなポリゴンに対してもエラーにならないように修正