ParaviewWeb学習記録7-モデル色問題3

2053 ワード

1. 20150504 
pvwコンパイルバージョンActor呼び出しプロセス:実行を開始し、vtkActor.cxx,  vtkOpenGLActor(), vtkPVCenterAxesActor(), vtkPVRenderView(), vtkActor.cxx,......,Actorの設定;モデルを追加し、Propertyの設定を表示します.vtkProperty.h;vtkPropertyをテストします.hのvirtual void SetColor(double r,double g,double b)メソッドが呼び出されたかどうか、4.1と4.2が呼び出された.vtkMapperを表示します.h,
  // Description:
  // Turn on/off flag to control whether scalar data is used to color objects.
  vtkSetMacro(ScalarVisibility, int);
  vtkGetMacro(ScalarVisibility, int);
  vtkBooleanMacro(ScalarVisibility, int);

マクロ定義は、読めず、ブレークポイントも設定できず、ScalarVisibilityと関係があり、レンダリング時の色パターンに影響を与えると推測されます.
2. 20150505
昨日のブレークポイントはActorの構造関数に設定して、ずっと初期化を実行して、ブレークポイントをActorに設定しています.cxxのRenderOpaqueGeometry(vtkmiewport*vp)メソッドは、vtkRender.cxxでactorが呼び出されたので、vtkRendererを表示します.cxx;
これはvtkのRendererで、レンダリングする時、各種の必要な情報を設定する必要があり、pvの中でモードの選択であると推測するので、呼び出しスタックから上へ見て、pvのrender、vtkPVRenderViewClientServerを見つける.cxx;
vtkPropはすべてのactors,volumes and annotationsの親であり、シーンに存在する任意のオブジェクト(either 2 mor 3 D)の親である.
モデルの操作のたびに、vtkActor::RenderOpaqueGeometry(vtkmiewport*vp)メソッドとstillRender()メソッドを実行し、vtkPVRenderViewに定義する.h中;
vtkPVRenderView.cxxのSetInteractionMode(int mode)はシーンのインタラクション方式を設定し、デフォルトは3 Dである.
3.vtkPLYReaderはply形式のデータを読み出し、色値をface構造体に保存し、
face->RGBCells()->output->outInfo->outputVector->\\ProcessRequest->CallAlgorithm,
4. vtkPVRenderView.cxxのSetAmbientColor(double r,double g,double b)、SetSpecularColor(double r,double g,double b)、SetDiffuseColor(double r,double g,double b)は初期化のみが行われ、いずれも(1,1)に設定され、モデルロード時に呼び出されなかった.SetIntensity(double val)およびSetLightType(int val)も初期化時に設定され、呼び出されません.
5.まとめ:pvのRendererでvtkのrenderを呼び出し、レンダリング中に様々なパラメータを追加します.今日の誤りは、環境光、鏡面光、拡散反射光によってモデルを着色すると考えられているが、OpenGLではこのような方法があるが、地質モデルでは、このような複雑な着色を必要とせず、モデル自体が定義した色に基づいて着色する.モデル自体によって定義される色のシェーディングにも2つあります.1つは補間に基づいてグラデーションを形成し、もう1つはモデル全体に1つの色を追加します.
6.いくつかの资料を见て、すべてMapperのScalarVisibilityがActorの色に影响したと言って、今日この部分のコードを见る时间违ってマクロを修正して、多くの工事の再コンパイルを招いて、深い教训、胜手にマクロを修正しないでください.