未分類

データ解析

ATCテクスチャのデコード

先日のPVRTCに引き続き、ATCテクスチャのデコードにチャレンジしてみました。 ATCでは、AMD_compressed_ATC_texture.txt にあるように3つの種類の方式があるようです。 不透明: ATC_RGB_AMD アルファあり: ATC_RGBA_EXPLICIT_ALPHA_AMD アルファあり: ATC_RGBA_INTERPOLA...
OpenGL

NVIDIAのシェーダー言語とか その2

前回の続きです。 結局、NVIDIAの配布するライブラリ(Cg Toolkit)に依存してしまうけど、DirectX/OpenGLで共通のシェーダーソースコードを使用することが可能になります。Cg言語は HLSL と大分似ているのでコードは書きやすいと思われます。 OpenGLに純粋に従うのであれば、 GLSL にてシェーダーを記述することになりますが、Di...
未分類

glGetActiveUniformの挙動

AMD製グラフィックボード搭載環境時に glGetActiveUniform関数が正常動作しない模様。 Catalystドライバが悪いのかも知れないが。 uniform sampler*のデータが取得できない。 有効なUniform変数の個数は意図通りなのに、sampler用と思われる部分でLocationIdが -1 という値が返ってくる。 NVIDIA製...
未分類

シェーダー定数(GLSL)

■ボーンの行列60個 どこかのブログでボーン用マトリックスパレットが60個くらいまでしか使えなかったと見たので、その理由を書いてみます。 実はその制限は単純なもので、ShaderModel3系までだと、シェーダー定数は256個のレジスタが使えることになっています。 マトリックスだとfloatの16個分なので、float4に換算すると4つ使うことになります。 ...
未分類

マニュアル間違ってる…

DirectX SDKのヘルプで、 D3DXSaveMeshHierarchyToFileの部分で、形式設定が間違ってた。 D3DXF_FILEFORMAT_BINARY D3DXF_FILEFORMAT_TEXT が使用可能。 DXFILEFORMAT_BINARY って書いてあったけど、こんな定義がどこにも見あたらない・・・。 それとこの関数使うとメモリ...