[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Java3Djp:00842] Re: clamp,repeat



☆★☆★☆★☆ホームページスペースのことならAKB NETWORKへ★☆★☆★☆★
★☆  http://あなたのID.miffy.toでHPを作るなら→\890/月から!  ★☆
☆ 50Mの大容量!!!独自ドメインでのホスティングなら→\3,980/月から! ★
★ サーバー丸ごとレンタル。Webレンタル業務も簡単→\20,000/月から! ☆
☆★   ただいまキャンペーン中!更にお安く提供しています!!   ☆★
★☆★☆★☆★業界屈指の低料金!!http://www.akb-net.com/☆★☆★☆★☆


Numakuraです。

えんどうさん、
> > 2.ポリゴンの一部にだけテクスチャを貼る、つまり
> >  0〜1のところだけにマッピングするために何か
> >  よい方法はありますか?(ポリゴンを分割する
> >  しかない?)
>
> たとえば四角形ポリゴンだったら、s0=-1.0, t0=-1.0, s1=2.0, t1=2.0
> とかしていおいて、WRAP にすれば出来そうな気がします。
>
これだとうまくいかないんです。以下は、ソースの一部ですが適当な
プログラムに入れ込んで実行してみてください。

    Point3d[] vertices = new Point3d[4];
    vertices[0] = new Point3d(-1.0, -0.5, 0.0);
    vertices[1] = new Point3d( 1.0, -0.5, 0.0);
    vertices[2] = new Point3d( 0.5,  0.5, 0.0);
    vertices[3] = new Point3d(-0.5,  0.5, 0.0);

    float texCoords[] = { -1.0f, -1.0f,
                           2.0f, -1.0f,
                           2.0f,  2.0f,
                          -1.0f,  2.0f };

    QuadArray quad = new QuadArray( 4, QuadArray.COORDINATES |
                                       QuadArray.TEXTURE_COORDINATE_2 );
    quad.setCoordinates(0, vertices);
    quad.setTextureCoordinates(0, texCoords);

    Texture texture = new TextureLoader("e:/texture.gif",
this ).getTexture();
    // ^ textureのパスは適当に!!
    texture.setBoundaryModeS( Texture.WRAP );
    texture.setBoundaryModeT( Texture.WRAP );
    texture.setBoundaryColor( 0.0f, 0.0f, 1.0f, 0.0f );
    texture.setMagFilter(Texture.NICEST);
    texture.setMinFilter(Texture.NICEST);

    Appearance app = new Appearance ();
    app.setTexture( texture );

//    TextureAttributes ta = new TextureAttributes();
//    ta.setPerspectiveCorrectionMode( TextureAttributes.NICEST );
//    app.setTextureAttributes( ta );

#ちなみに、上記は「一般の四角形にマッピングするとPerspectiveCorrection
#してもテクスチャがゆがむ」ということも見て取れます。これは四角形を2個の
#三角形に分割するからだと思われますが、どうもこれが好きになれません。
#OpenGLのせいなのですが、いつなおるんでしょう?

_/_/_/     E-Mail:numakura@aie-res.co.jp    _/_/_/