2011-07-18 181 views
4

私は通常、自営業のGoogle社員ですが、OpenGLシェーダ機能texture2DRect()に関するドキュメントは見つかりません。誰もこれを前にして来たのですか?OpenGLシェーダ関数texture2DRect()のドキュメントはどこにありますか?

これは、openframeworksにシェーダーを書き込むためのサンプルコードで使用されているので、存在することを知っています。正常に動作していれば正式なドキュメントは見つかりません。この機能の詳細はどこで知ることができますか?

+0

http://www.gamedev.net/topic/309853-glsl-and-non-power-of-two-textures/ –

答えて

8

その関数が2Dテクスチャ矩形(NPOTテクスチャターゲット)をサンプリングするために使用され、そしてそれはGL_ARB_texture_rectangle extensionの「OpenGLのシェーディング言語仕様のバージョン1.10.59への追加」で指定されています:。

Add to section 8.7 "Texture Lookup Functions" 

Syntax: 

    vec4 texture2DRect(sampler2DRect sampler, vec2 coord) 
    vec4 texture2DRectProj(sampler2DRect sampler, vec3 coord) 
    vec4 texture2DRectProj(sampler2DRect sampler, vec4 coord) 

Description: 

    "Use the texture coordinate coord to do a texture lookup in the 
    rectangle texture currently bound to sampler. For the projective 
    ("Proj") version, the texture coordinate (coord.s, coord.t) is 
    divided by the last component of coord. The third component of 
    coord is ignored for the vec4 coord variant. 

    No "bias" parameter or "Lod" suffixed functions for rectangle 
    textures are supported because mipmaps are not allowed for 
    rectangular textures." 
+0

フォローアップの質問として、vec coordの範囲についての洞察を提供できますか引数?通常、テクスチャ座標は0と1の間ですが、この関数はそれらを別々に扱います。私が与えたリンクは、その範囲が0から幅または0から高さであることを詳述しています。何か不足していますか? – Alan

+1

@Alan Ho - 私の使い方では、矩形テクスチャイメージの幅と高さをテクスチャ座標の制限として入力し、 'texture2DRect()'を使用して、イメージ内のすべての点からサンプルできます。あなたの幅/ 4の限界がどこから来ているのかは分かりません。 –

+0

ブラッドさん、ありがとうございました。 – Alan

2

texture2DRect()はOpenGLシェーディング言語の関数で、矩形の2の累乗以外のテクスチャをサポートするために、ARB_texture_rectangle拡張によって追加されたものと考えられます。

それを使用するには、あなたが、あなたのシェーダでsampler2DRect均一を設定texture2DRect()グラブを持っている必要がありますことから、色はちょうどあなたがtexture2D()の場合と好き。これを使用しているMacアプリケーションでは、GL_TEXTURE_2Dの代わりにGL_TEXTURE_RECTANGLE_EXTを使用してOpenGLテクスチャを作成する必要がありました。

私の質問hereに応じて、コスはこれを私に指摘しなければなりませんでした。

関連する問題