スポンサーリンク

vtkPolyDataMapper2D , vtkTexturedActor2D で二次元表示

vtkPolyDataMapper2D,vtkTextureActor2Dを使うとカメラの影響を受けなくなるのでスクリーンを画面に貼り付けるような用途に使える。

あと座標指定がピクセルになる。

    // テクスチャオブジェクト作成 ///////////////
    vtkNew<vtkTexture> texture;
    
    // 画像データ作成 ///////////////////////////
    std::vector<unsigned char> pixels = MakeCheckerRGBA(256, 256, 32);

    // 画像データをvtkImageDataに変換 ///////////
    vtkSmartPointer<vtkImageData> imgdata = MakeImageDataFromBuffer(pixels.data(), 256, 256, 4);

    // テクスチャに画像データをセット ///////////
    SetTextureImage(texture, imgdata);

    // ポリゴン作成 /////////////////////////////
    auto poly_quad = MakeScreenAlignedQuad(200, 200); // ポリゴンサイズをピクセル指定で作成

    // 2Dマッパ & アクタ
    vtkNew<vtkPolyDataMapper2D> mapper2d;
    mapper2d->SetInputData(poly_quad);
    vtkNew<vtkTexturedActor2D> actor2d;
    actor2d->SetMapper(mapper2d);
    actor2d->SetPosition(0, 0); // 画面上の配置(左下オフセット)   
    actor2d->SetTexture(texture);

    renderer->AddActor(actor2d);

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)


この記事のトラックバックURL: