私のアプリケーションのOpenGLコードをOpenSceneGraphを使用するコードに置き換えます。OpenGLからOpenSceneGraphへの移行:特定のテクスチャの寸法の場合に表示が正しくない
私は大きな画像(5000x5000pxより高い解像度)を扱っているため、画像は小さなタイルに分割されています。
タイルを描画するOpenGLコードはglTexImage2D(GL_TEXTURE_2D, ..., imageData)
を使用します。ここで、imageData
はタイルバイト配列です。
OpenSceneGraphでは、同じimageData
のosg::Image
を作成し、このosg::Image
を使って簡単なクワッドをテクスチャにします。
問題は、特定のosg::Image
ディメンションの結果が醜いことです。
タイルが256x128の場合はすべて問題ありません。私は問題が何であるかを理解したいと思います
:
とどのように元の画像loogsだ。しかし、ここで、それは254x130タイルとOSGのためにどのように見えるのです::画像。 OpenSceneGraphはOpenGLに基づいているので、私が書いたOpenSceneGraphコードは古いOpenGLのものと同じだと思います。さらに、私はタイルサイズを変更することができないので、実際には254x130のタイルで動作させる必要があります。
画像作成コード:
`osg::Image * image = new osg::Image();
//width, height, textFormat, pixelFormat, type and data
//are the ones that were used with glTexImage2D
image->setImage(width, height, 1, textFormat, pixelFormat, type, data, NO_DELETE);
osg::Texture2D * texture = new osg::Texture2D;
texture->setImage(image);
stateset->setTextureAttributeAndModes(0, texture, osg::StateAttribute::ON);`
osg :: Imageを作成、割り当て、塗りつぶしする方法についていくつかのコードを教えてください - 白黒であるとさえ間違ったイメージですか? – rickyviking
元のメッセージにいくつかのコードを追加しました。灰色のイメージは緑色のイメージのように見えます。私はまた、すべてのタイルが傾いていることに気づいた。 – Krag