2010年1月31日日曜日

etc - 第一歩(4)

左:DirectX、 右:自作関数

で100万回ぶん回してみた



あれれれ

何とかIdentityの回数指定ミスってるorz

それにしても一部の関数がDirectXより10倍とか早くて不安になってきた

2010年1月30日土曜日

etc - 第一歩(3)



三角形塗りつぶしの適当実装。
AA付けたいし、四角形も塗りつぶしたいので、
ひとまず置いておいて、Zバッファ見てみる予定。

2010年1月25日月曜日

2010年1月24日日曜日

etc - 第一歩

やっとなんかでた

↓CPU


↓DirectX


重ねてみると・・・

だいたいあってる!!!

次はZバッファがんばろう。

2010年1月22日金曜日

etc - 三角形の本

物凄い勢いで三角形について書いてあるっぽい本が届いた(洋書



http://www.amazon.co.jp/gp/product/toc/354033260X/

こいつはGoogleBooksでもほとんど読めないので買い。

2010年1月18日月曜日

etc - ユニットテスト

ちょっと慣れてきた。

正しい解が分かっていて、関数単位で比較する場合、かなり便利。
(Google Mockは、まだ試していない)



現在11個だけど、行列計算を1回で正解とするのは、かなり危険なので、
それぞれランダムな数を放り込んで、100回ずつ実行した結果↑

だいたいあってるテストができる ASSERT_NEAR は、小数点以下の桁数しか指定できないので、何か代わりの方法無いものか。float って有効範囲が小数点以下6桁じゃなくて、上から6桁なんだよね・・・

マニュアル見るの面倒だから、乱数生成時の桁数を1e-6にかけて一時回避。でも、これだと、掛け算とかして桁数が変わると外れる。というわけで、とりあえず行列積のところは、乱数の桁数の二乗を1e-6に掛けて回避。

まぁ、大体あってればよし。

2010年1月17日日曜日

blender - 東方の誰か(16)

今日は色々旨い物を食べに行っていたので余り進まず・・・

2010年1月16日土曜日

blender - 東方の誰か(15)

ついに霊夢、製作開始



髪と顔は大体こんなもんかなー
有名キャラなのでいつもより2割り増しで力入ってます。

今までの全キャラに言えるけど、シェイプキーがヤバイ。
最悪プログラムで何とかするかも

2010年1月14日木曜日

etc - GoogleTest

はじめの一歩。


/// Main.cpp ///
#include "Common.h"

int _tmain(int argc, _TCHAR* argv[])
{
    // GoogleTestしる!
testing::InitGoogleTest(&argc, argv);
// ↓こいつが勝手に全てのテストを探し出して実行してくれるらしい
RUN_ALL_TESTS();

getchar(); //コンソールウインド止める用
return 0;
}

/// CameraTest.cpp ///

#include "Common.h"
#include "gtest/gtest.h"

// テストセットアップ用クラス
// いゆるTestSuiteってやつか?
// xUnitでは、SetUp → テストケース実行 → TearDown
// が、全テストケースにわたり実行される。
class CameraTest : public ::testing::Test {
protected:
LPDIRECT3D9 pDirect3D;

float w, h, span, start, end, lens;

virtual void SetUp() {
pDirect3D = ::Direct3DCreate9(D3D_SDK_VERSION);
w = 800;
h = 600;
span = 0.2f;
start = 10.0f;
end = 1024.0f;
lens = 60.0f;
}
virtual void TearDown() {
SAFE_RELEASE(pDirect3D);
}
};

// 今回のテスト用関数。
// D3DXMatrixOrthoLHと同じ出力になって欲しい
// 正射影の行列を生成する
void um_matrix_ortho_lh(
float projection[][4], float w, float h, float zn, float zf)
{
projection[0][0] = 2/w;
projection[1][0] = 0.0f;
projection[2][0] = 0.0f;
projection[3][0] = 0.0f;

projection[0][1] = 0.0f;
projection[1][1] = 2/h;
projection[2][1] = 0.0f;
projection[3][1] = 0.0f;

projection[0][2] = 0.0f;
projection[1][2] = 0.0f;
projection[2][2] = 1/(zf-zn);
projection[3][2] = zn/(zn-zf);

projection[0][3] = 0.0f;
projection[1][3] = 0.0f;
projection[2][3] = 0.0f;
projection[3][3] = 1.0f;

}

// TestCase. 第一引数がTestSuite、第二引数がテストケース名
TEST_F(CameraTest, OrthoLH1)
{
D3DXMATRIX dx_projection;
float my_projection[4][4];

// Dx 正射影行列
D3DXMatrixOrthoLH(&dx_projection,
w * span,
h * span, start, end);

// My 正射影行列
um_matrix_ortho_lh(&my_projection[0],
w * span,
h * span, start, end);

for (int j = 0; j < 4; ++j) {
for (int k = 0; k < 4; ++k) {
// だいたいあってるか?
ASSERT_NEAR(dx_projection.m[k][j], my_projection[k][j], 1e-6);
// 中身見る用
// dprintf(_T("%d, %d, %f, %f\n"), j, k, dx_projection.m[k][j], my_projection[k][j]);
}
}
}


結果

2010年1月12日火曜日

etc - DirectXのREFモード

REFモードというのを使ってみた。CPUでAAエミュレートしてくれた。
compute shaderとかもエミュレートしてくれるのかな・・

だとしたらDirectX11とか最新ので、シェーダ使いまくってガシガシ作って、GPUある人はぬるぬる表示、GPUしょぼい人でも動画作成くらいになら使えるかもなー。

2010年1月11日月曜日

blender - 東方の誰か(14)



なんたら神社。まだまだ全然ヘボイ

2010年1月10日日曜日

etc - 3Dカスタム少女モデルの同人映像が売られていた

今日は、新宿のとらのあなにいつもどおり巡回してきたんですが



( ゚д゚) ・・・
 
(つд⊂)ゴシゴシ
 
(;゚д゚) ・・・
 
(つд⊂)ゴシゴシゴシ
  _, ._
(;゚ Д゚) …!?



最近こっち方面見てなかったけど、これってありなの??

→ 余裕で有り(商用OK)らしいです!恐るべし、カスタム少女!!

でも中身mp4かよっ!重いぞっ

-----------------------------------------------

あと、
http://www.north-t.com/work/#lifework
ここのLifeworkというCDジャケ買い


このくらい分かりやすいと良いんだけど、
同人の音楽はジャケ買いのコツがいまいちわかない。

こないだの
『さぁ、あんたらに、音圧の限界を聴かせてあげるわ。』
とか帯に書いてあるCDなら直ぐ分かるんだが・・他のは全部似たようなイラストが書いてあるだけなので、ジャケ買いというかタイトル買いしかできない。

blender - 東方の誰か(13)

テクスチャペイントで服塗りまくって、おkもうちょいで完成と思ってたら
テクスチャ消えたーーーー(涙




ふぅ、、塗りなおした



手がおかしいせいで、いまいち迫力に欠ける。
しかもこの画像キャプった後スカートのテクスチャ無くなった・・・orz

2010年1月7日木曜日

blender - 東方の誰か(12)


がんばって巨乳にしようとして2回落ちた結果、このくらいまで膨らんだ


頭になんかつけた

2010年1月6日水曜日

blender - 東方の誰か(11)

東方 地霊なんとかの6面のボス作成開始

ちなみにモデリングするときはいつもここで垂れ流している.
大体平日運が良いと深夜12時くらいに.
http://www.stickam.jp/profile/uimac

1時間経過





まぁ素人の1時間なんてこんなもんである・・・

2010年1月5日火曜日

etc - 教えて!goo


http://oshiete1.goo.ne.jp/qa4580218.html
最近のWii、PS3のアニメキャラクター系の対戦ゲームなんかでは
”アニメ中のキャラ”が動いているように見せるために
3Dポリゴンに”向いた方向に合わせて黒い輪郭線”が描かれるような技法を採用しています。


なんだこの質問。回答より質問のほうが圧倒的に役に立つ・・・

2010年1月3日日曜日

blender - 年賀画像



⑨をちょこっと改造したオリキャラです(言い張る

ちなみに被り物の、画像向かって左側は、デコボコしているのではなくて、面の法線裏返してるだけ(手動)

もう今日から仕事なんだけど、朝起きれる気がしない。

2010年1月1日金曜日

etc - 2010年

あけましておめでとうございます。

去年は、こんな感じでした。


~去年の良かったこと~
・就職前にGoogleReaderに片っ端から興味あるブログを登録して、就職後も継続して収集した結果、時間がない時でも情報収集を欠かさず出来た。
・社会人になって120%外食なのに超健康だった。

~去年の悪かったこと~
・リア充になれなかった
・立派な社会人になれたかというと、かなり怪しい

~今年の目標~
・出会う
・作る