E55B
Skip to content

PolygonRenderer

Naohisa Sakamoto edited this page Mar 25, 2017 · 2 revisions

4.3 ポリゴンレンダラー

ポリゴンレンダラーは、ポリゴンオブジェクトを描画するためのレンダラーです。ポリゴンオブジェクトに格納されている座標データや色データなどの情報をもとにして、OpenGLのGL_TRIANGLESまたはGL_QUADSを使ってポリゴンを描画します。

4.3.1 レンダリング機能

KVSでは、ポリゴンレンダラーは以下のようのような機能を持っています。

シェーディング
ポリゴンを構成する各面または各頂点に設定される法線ベクトルをもとに、光源位置を考慮して陰影処理(シェーディング処理)を行うことが可能です。点レンダラーと同様、立体感のある高品位な描画が可能です。
アンチエイリアシング
描画されるポリゴンの輪郭を滑らかに描画することで、高品位な描画を行うことが可能です。
両面ライティング
照明効果を有効にしている際、ポリゴンの裏面に対してもシェーディング処理が実行されます。

###4.3.2 kvs::PolygonRendererクラス

KVSでは、ポリゴンレンダラーはkvs::PolygonRendererクラスとして実装されています。以下では、kvs::PolygonRendererクラスの主なメソッドについて説明します。


void enableShading()

機能
シェーディング処理を有効にする。

戻り値
なし


void disableShading()

機能
シェーディング処理を無効にする。

戻り値
なし


void enableAntiAliasing( const bool multisample )

機能
アンチエイリアシング処理を有効にする。

引数
multisample マルチサンプリングのオン・オフ。指定しない場合オフ。

戻り値
なし


void disableAntiAliasing()

機能
アンチエイリアシング処理を無効にする。

戻り値
なし


void enableTwoSideLighting()

機能
両面ライティング処理を有効にする。

**戻り値
なし


void disableTwoSideLighting()

機能
両面ライティング処理を無効にする。

戻り値
なし


4.3.3 サンプルプログラム

ポリゴンオブジェクトのサンプルプログラムで示したCreatePolygonObject関数を利用してオブジェクトを作成し、それを描画するサンプルコードを以下に示します。

#include <kvs/glut/Application>
#include <kvs/glut/Screen>
#include <kvs/PolygonObject>
#include <kvs/PolygonRenderer>

// メイン関数
int main( int argc, char** argv )
{
    kvs::glut:::Application app( argc, argv );

    // ポリゴンオブジェクトの生成
    kvs::PolygonObject* object = CreatePolygonObject();

    // ポリゴンレンダラーの生成
    kvs::PolygonRenderer* renderer = new kvs::PolygonRenderer();
    renderer->disableShading();
    renderer->enableAntiAliasing();
    renderer->enableTwoSideLighting();

    kvs::glut::Screen screen( &app );
    screen.setTitle( “Create Polygon Renderer” );
    screen.registerObject( object, renderer );
    screen.show();

    return app.run();
}

Clone this wiki locally

0