絞り込み条件を変更する
検索条件を絞り込む

すべてのブログから「#テクスチャーマッピング」タグの検索結果

2 件中 1 - 2 件表示
カバー画像

c+WINAPIで3DCGの理屈その4

さて、前回のグーローシェーディング付きテクスチャーマッピングとフォンシェーディング付きテクスチャーマッピングはバグがあったのがなんとなく推察できたかもしれないですが、作者こと自分の理解度不足があったことが全ての原因です。という訳で今回はテクスチャーのグーローとフォンが治るまでシャドウを作ります。#include"DXLib.h"#include<math.h>#include<stdlib.h>#include<windows.h>#include<utility>using namespace std;#define CELL 1.0fconst float FOV_F = 600.0f;const int HEIGHT = 240;const int WIDTH = 320;struct VTX {    float x, y, z;    float u, v;};struct Camera{    float x, y, z;    float yaw; // 左右回転のみ    float height;};enum WallDir{    WALL_NORTH,    WALL_SOUTH,    WALL_WEST,    WALL_EAST};struct Vec3{    float x;    float y;    float z;};float ZBuf[HEIGHT][WIDTH];#define RAD (3.14159265/180.0)Camera cam;// ==================
0
カバー画像

cとWINAPIで3DCGの理屈その3

あと、残り少なくなってきた記事ですが、テクスチャーマッピングについてとりあげます。のちに、フラットテスクチャ―、グーローテクスチャーとフォンテクスチャーも取り上げます。残る問題は、古典的なところでは、白黒で凹凸を表現するバンプマッピングですね。他には、フォグや、モーションブラーも行きたいですが、そこまで技術力は沸いてこないと思います。まずは歪んだテクスチャーマッピングから解説します。int Texture[32][32];という2次元配列によってuとvという0~31までの画像を参照する座標が設定できるようになります。この解説においてテクスチャーデータに格納するために適しているのは何と言ってもbmp形式です。フォーマットが決まっているからというのもあります。これは、ラッピングによるand演算により繰り返しが出来る為に、32とか、256などの2のNの累乗が選ばれる理由です。こんな画像を自分が用意しました。とここで、UとVを0~1.0に収まるように正規化しておきます。そしたら、実際の描画処理に移るわけですが、毎回これを行います。1.座標バッファ初期化for(int y=0;y<height;y++){     Lbuf[y]=9000;     Rbuf[y]=-9000;}2.ポリゴンの3つの頂点を線形補間して、例えば、頂点がAx,Ay,Bx,By,Cx,CyとAU,AV,BU,BV,CU,CV,heightとあったら、以下のLineをLine(Ax,Ay,AU,AV,Bx,By,BU,BV,height);Line(Bx,By,BU,BV,Cx,Cy,CU,CV,heigh
0
2 件中 1 - 2