C#は電気羊の夢を見るか?(引っ越し中)

dtiブログが閉鎖とのことでhttp://tanocs.blog.fc2.com/へ引っ越します。

BlenderのColorLampっぽい物をXNAで実現



ブレンダーのカラーランプっぽいものをXNAで実装した。
そのHLSLを公開

↓のような感じのテクスチャを256×256で用意



あとはMaterial_Uでそれっぽく指定してください。
うまくやれば127パターンくらいは行けると思います。


ソースはとりあえず版。
インデントはブログの関係で汚いですが、勘弁してくりゃれ。


※注意事項 : Material_Uは 1.0f 及び 0.0f は指定しないこと。


ソースは続きからご覧ください
このエントリーをはてなブックマークに追加
LINEで送る

続きを読む »

SSSへのみち

ちょいと昔のサンプルコードを見るたびに、
おんなじこと忘れて毎回調べ直すのがめんどくさいのでメモ

error C2039: 'Pass' : 'ID3DXEffect' のメンバではありません。
■main.cpp[パスを開始に変更、終了を追加]
m_pEffect->pass(0); → m_pEffect->BeginPass(0);
                m_pEffect->EndPass();


error C2051: case 式は、整数型定数でなければなりません。
■d3dapp.cpp[下記部分をコメントアウト]
case D3DAPPERR_MEDIANOTFOUND:
case HRESULT_FROM_WIN32( ERROR_FILE_NOT_FOUND ):
_tcscpy( strMsg, _T("Could not load required media." ) );
break;


error C2061: 構文エラー : 識別子 'LPDIRECTXFILEDATA'
■d3dfile.h[インクルードを追加]
#include <dxfile.h>

■d3dfile.cpp(146行目あたり)[キャストを追加](上記作業とセット)
if( FAILED( hr = D3DXLoadMeshFromXof( pFileData, D3DXMESH_SYSTEMMEM, pd3dDevice, →
if( FAILED( hr = D3DXLoadMeshFromXof( (LPD3DXFILEDATA)pFileData, D3DXMESH_SYSTEMMEM, pd3dDevice,



fatal error C1083: include ファイルを開けません。'dxutil.h': No such file or directory

このエラー、コンバータが変換したプログラムだとインクルードファイルがないとか片っぱしから文句つけられるのだが、ファイル自体はあったりするから困る。

簡単に言えばパスが通ってないだけなのだが、焦ってると意外とハマるのでメモ
メニューからプロジェクト → (プロジェクト名)のプロパティ→ C/C++ → 全般 → 追加のインクルード ディレクトリ
にコンバータで変換した人は多分 .framework とか書くと幸せになれる。


error X4502: invalid ps_2_0 input semantic 'DIFFUSE'
こいつは、なんかエラー出たからとりあえずps_2_0にしとけとか言う僕とお友達になれそうな対応をした場合出るエラー

COLOR0に置き換えることで解決する
このエントリーをはてなブックマークに追加
LINEで送る

ダダハマリ

ここん所デスマーチが酷くて、さっぱり手をつけられずにいたものの、
少ない時間を使って一生懸命ブレンダーのカラーランプっぽい何かを作っていたのだが、
HLSL上でテクスチャ座標を指定して色情報を引っ張ってくるロジックで、
これ以上に無いほどはまった。

挙句、その苦心振りに心を痛めた「プログラムちょっとは出来るよ」ってレベルの人に、
「ちょっと貸して」的な実験をしてもらい答えが分かると言う体たらく。

そのハマリの詳細は
HLSLでセマンティクス TEXCOORD0 で引っ張ってきた変数を仮に[TexUV]とする。
これのTexUV.x TexUV.yプロパティに 0.0f または 1.0f を突っ込むと
なぜかその行、またはその列のマップの平均値の色情報が帰ってくる。

例えば 255 * 255 サイズのビットマップを UV 0.0 * 0.0 〜 1.0 * 1.0で表現する場合、
座標 X:0 Y:0 の値をとるために .x=0.0f .y=0.0f 等としたり、
X:255 Y:255 を .x=1.0f .y=1.0f と指定すると全体の平均色が帰ってくる為、
何がなんだか分からなくなる。

1月終わりごろからデスマーチがあったとは言えほぼ一ヶ月半かかった・・
これってDirextXな人たちの間では常識なのか、どこにもそんな注意書きが無かったと言うか、
こんな変なテクスチャの使い方する事がそもそも無いのか・・・


ソースコードについては、実験のためにコメントでぐちゃぐちゃになっているため、
整理が終了次第配布予定です。
このエントリーをはてなブックマークに追加
LINEで送る

 | HOME | 

PAGE TOP ▲

Appendix

■春条

■春条

生息地は愛知
車と甘い物が好きな31歳
特技は無限昼寝

MONOからSharpDXを使う
変態的な手法で、
.NET Frameworkを使わずに
ゲーム作りやってます。

Search

Calender

« | 2010-03 | »
S M T W T F S
- 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 - - -

Twitter

Recent Entries

DTIブログポータルへ
このブログを通報
Report Abuse

利用規約