DirectX勉強会 第2回.

Slides:



Advertisements
Similar presentations
シミュレーション演習 G. 総合演習 ( Mathematica 演 習) システム創成情報工学科 テキスト作成: 藤尾 光彦 講義担当: 尾下 真樹.
Advertisements

ファーストイヤー・セミナーⅡ 第13回 2次元グラフィックス(1). 2次元グラフィックス Ultra-C では、これまで利用してきた「標準入出力」 以外に「グラフィックス画面」があり、図形などを 表示できる C 言語のグラフィックスには細かな規定がなく、こ れから学ぶ内容が他の環境、システムでは利用でき.
【事例演習5】  字句解析     解 説  “ハッシュを用いた字句解析の方法”.
初年次セミナー 第13回 2次元グラフィックス(1).
情報処理演習 (9)グラフィックス システム科学領域 日浦 慎作.
初年次セミナー 第14回 2次元グラフィックス(2).
プログラミング演習3 李 亜民クラス 第2回 ラスタライズ.
情報処理演習C2 ファイル操作について (2).
C言語 配列 2016年 吉田研究室.
デスクトップを画像として保存する(1) ① デスクトップの画像をクリップボードへコピーする。
データ構造とアルゴリズム 第10回 mallocとfree
岩村雅一 知能情報工学演習I 第9回(C言語第3回) 岩村雅一
第4回:ボールを画面内で弾ませよう! (オブジェクトの移動、二次元)
地理情報システム論 第3回 コンピュータシステムおける データ表現(1)
プログラミング演習3 第4回 ミニプロジェクト.
問題 1 キーボードから入力した数の合計を計算するプログラムを 作成せよ。最初に、何個の数を入力するかその数を入力 するようにする。
INSERT(x,p,L)の例 (一部) 磯 直行 2009年5月5日
プログラミング演習Ⅰ 課題2 10進数と2進数 2回目.
3次元での回転表示について.
プログラミング 3 構造体(1).
CGと形状モデリング 授業資料 長井 超慧(東京大学)
C 言語について 補足資料 資料および授業の情報は :
基礎プログラミング演習 第10回.
コンピュータグラフィックスS 第13回 第13回 演習(4):シェーディング、マッピング システム創成情報工学科 尾下 真樹
JAVA GUIプログラミング 第2回 グラフィックスを使っての演習 グラフを描こう.
グラフィックス、その1 色の表示 フォントを変えて文字を表示 直線、四角形、楕円形の描画 円弧の描画 多角形の描画
DirectX 勉強会 第4回.
3D散歩ゲーム 08A2043 谷口盛海 種田研究室.
行列による画像処理 デジタル表現論 担当者:劉 雪峰 2017年6月1日.
Cプログラミング演習 第7回 メモリ内でのデータの配置.
電界中の電子の運動 シミュレータ作成 精密工学科プログラミング基礎 資料.
ポリゴンメッシュ (1) - データ構造とレンダリングに必要な計算 -
TCanvas BCB:TCanvasクラスでグラフィックを扱う。 TFormなどもプロパティとして持っている。
精密工学科プログラミング基礎 第10回資料 (12/18実施)
プログラミング 4 記憶の割り付け.
OpenGLライブラリを用いた3次元フラクタルの描画
画像処理プログラムの説明.
岩村雅一 知能情報工学演習I 第9回(後半第3回) 岩村雅一
プログラミング入門2 第11回 情報工学科 篠埜 功.
第7回 プログラミングⅡ 第7回
3次元での回転表示について.
岩村雅一 知能情報工学演習I 第9回(後半第3回) 岩村雅一
岩村雅一 知能情報工学演習I 第9回(C言語第3回) 岩村雅一
型の compatibility とポインタ演算
精密工学科プログラミング基礎Ⅱ 第5回資料 今回の授業で習得してほしいこと: 構造体 (教科書 91 ページ)
構造体と共用体.
岩村雅一 知能情報工学演習I 第9回(後半第3回) 岩村雅一
データ構造とアルゴリズム 第11回 リスト構造(1)
プログラミング 3 2 次元配列.
地理情報システム論(総)/ 国民経済計算論(商)
プロジェクト演習Ⅳ・Ⅵ インタラクティブゲーム制作
ポインタとポインタを用いた関数定義.
復習 Cにおけるループからの脱出と制御 break ループを強制終了する.if文と組み合わせて利用するのが一般的. continue
アルゴリズムとプログラミング (Algorithms and Programming)
地理情報システム論 第4回 コンピュータシステムおける データ表現(2)
第11回放送授業.
アルゴリズムとデータ構造1 2009年6月15日
バネモデルの シミュレータ作成 精密工学科プログラミング基礎 資料.
プログラミング基礎a 第9回 Java言語による図形処理入門(1) Javaアプレット入門
シミュレーション演習 G. 総合演習 (Mathematica演習) システム創成情報工学科
アルゴリズムとデータ構造 2010年6月17日
全体の流れ 画像ファイルを開き,画像データをメモリ上にロード メモリ上にロードした画像データに処理を加える
情報処理Ⅱ 2005年11月25日(金).
プログラミング基礎a 第5回 C言語によるプログラミング入門 配列と文字列
CGと形状モデリング 授業資料 1,2限: 大竹豊(東京大学) 3,4限: 俵 丈展(理化学研究所)
TList リスト構造とは? 複数のデータを扱うために、 データの内容と、次のデータへのポインタを持つ構造体を使う。
プログラミング 3 ポインタ(1).
計算機プログラミングI 第5回 2002年11月7日(木) 配列: 沢山のデータをまとめたデータ どんなものか どうやって使うのか
岩村雅一 知能情報工学演習I 第9回(C言語第3回) 岩村雅一
情報処理3 第4回目講義         担当 鶴貝 達政 12/17/2019.
Presentation transcript:

DirectX勉強会 第2回

内容 ポリゴンの描画 テクスチャの貼り付け 半透明ポリゴンの描画

ポリゴンの描画1 DirectXでは物を描くのにポリゴンを使う すべてのポリゴンは3角形によって描く 3角形は頂点を指定することで描く 頂点のフォーマットは自分で作ることができ、サンプルプログラムでは次のようなフォーマットになっている struct TLVERTEX { float x,y,z; 頂点の座標を表している float rhw; プロジェクション頂点変換に関係する D3DCOLOR color; 頂点の色を指定する float tu,tv; テクスチャ座標を指定する };

ポリゴンの描画2 まず頂点を準備する TLVERTEX vertex[4];によって頂点を4つ宣言し、値を代入することで頂点の場所などが決まる ポリゴンの描画は開始を宣言する     lpD3DDEV->BeginScene();              と描画の終わりを宣言する        lpD3DDEV->EndScene();               の間でする lpD3DDEV->DrawPrimitiveUP            でポリゴンを描画する

ポリゴンの描画3 lpD3DDEV->DrawPrimitiveUP関数の第1引数でポリゴンの描画法を指定する D3DPT_POINTLIST 指定された頂点はすべて点として描画する D3DPT_LINELIST 別々の線のリストとして描画する D3DPT_LINESTRIP 連続した線分のリストとして描画する D3DPT_TRIANGLELIST 3頂点ずつの別々の頂点として描画する D3DPT_TRIANGLESTRIP 連続した3角形のリストとして描画する D3DPT_TRIANGLEFAN 1つの頂点を共有した連続した3角形のリストとして描画する lpD3DDEV->DrawPrimitiveUP関数の第2引数は3角形ポリゴンの数 lpD3DDEV->DrawPrimitiveUP関数の第3引数は頂点の配列へのポインタ lpD3DDEV->DrawPrimitiveUP関数の第4引数は1頂点あたりのサイズ

D3DPT_POINTLIST D3DPT_LINELIST 頂点0 頂点0 頂点1 頂点1 頂点2 頂点2 頂点3 頂点3 頂点4 頂点4 頂点5 頂点4 頂点3 頂点2 頂点1 頂点0 頂点5 頂点4 頂点3 頂点2 頂点1 頂点0

D3DPT_LINESTRIP D3DPT_TRIANGLELIST 頂点0 頂点1 頂点0 頂点1 頂点2 頂点2 頂点3 頂点3 頂点4 頂点5 頂点4 頂点3 頂点2 頂点1 頂点0 頂点2 頂点3 頂点4 頂点5

D3DPT_LINESTRIP D3DPT_TRIANGLELIST 頂点1 頂点0 頂点2 頂点1 頂点2 頂点0 頂点3 頂点4 頂点3 頂点5 頂点5

サンプルプログラム(Poly2D) 元のまま( vertex[0]とvertex[3]のX座標は100 )

テクスチャの貼り付け1 D3DXCreateTextureFromFileEx関数を使って貼り付けたいテクスチャを読み込む

テクスチャの貼り付け2 lpD3DDEV->SetTexture関数でテクスチャの設定をする 第2引数のポインタでテクスチャを指定する NULLにするとテクスチャは使われなくなる 頂点のフォーマットでテクスチャを指定する部分があるが(tu,tv)で(0,0)はテクスチャの左上、(1,0)は右上の様に0~1の値でtuは横方向、tvは縦方向を表す

サンプルプログラム(Poly2D) 元のまま(テクスチャとしてtexture.bmpを貼り付ける) テクスチャオブジェクトへのポインタをNULLにした場合

半透明ポリゴンの描画1 lpD3DDEV->SetRenderState関数でアルファ・ブレンディングをONにすることで半透明にすることができる lpD3DDEV->SetRenderState関数で透明化の方法を指定できる D3DRS_SRCBLENDをD3DBLEND_SRCALPHAに、D3DRS_DESTBLENDをD3DBLEND_INVSRCALPHAにすることで普通の半透明にできる(透明度を考慮した値になっている) D3DRS_SRCBLENDをD3DBLEND_ONEに、D3DRS_DESTBLENDをD3DBLEND_ONEにすることで加算合計による半透明にできる(重なった色を単純に足している)

半透明ポリゴンの描画2 透明化をするためには色の表現をRGBの3つの変数だけではなく、RGBAの4つの変数で表現する Aは透明度を表す D3DCOLOR_RGBA(r,g,b,a)で定義する RGBだけの表現はD3DCOLOR_XRGB(r,g,b)で定義する

サンプルプログラム(Poly2DCalc) 元のまま(普通の半透明) 加算合計による半透明