資源簡介
3D圖形庫實心渲染源代碼
平底三角形
平頂三角形
任意三角形
物體實心渲染

代碼片段和文件信息
//?頭文件
#include?
#include?
#include?“CPPYIN.3DLib.h“
#include?“CPPYIN.Math.h“
using?namespace?_CPPYIN_3DLib;
using?namespace?_CPPYIN_Math;
//?宏定義
#define?WINDOW_CLASS_NAME?TEXT(“CPPYIN3DWNDCLS“)
#define?WINDOW_title?TEXT(“CPPYIN3DCONSOLE“)
#define?SCREEN_WIDTH?800
#define?SCREEN_HEIGHT?600
#define?SCREEN_BPP?32
#define?WAIT_TIME?30
//?全局變量定義
HWND?g_WindowHandle;
HINSTANCE?g_HInstance;
DWORD?g_Clock;
POINT4D?g_VertexList[4];
POLY?g_Poly[4];
object?g_Obj;
CAMERA?g_Camera;
int?g_ObjRatationAngelZ?=?0;
//?宏腳本
#define?KEY_DOWN(vk_code)?((GetAsyncKeyState(vk_code)?&?0x8000)???1?:?0)
#define?KEY_UP(vk_code)?((GetAsyncKeyState(vk_code)?&?0x8000)???0?:?1)
//?函數定義
DWORD?GetClock()
{
return?GetTickCount();?
}
void?StartClock()
{
g_Clock?=?GetClock();
}
void?WaitClock()
{
while((GetClock()?-?g_Clock)? {
Sleep(5);
}
}
int?Game_Init()
{
Init3DLib(g_HInstance?g_WindowHandle?SCREEN_WIDTH?SCREEN_HEIGHT);
InitSinCosTable();
//?設置局部坐標
POINT4D?v1?=?{?0?1?0?1?};
POINT4D?v2?=?{?-1?-1?0?1?};
POINT4D?v3?=?{?1?-1?0?1?};
POINT4D?v4?=?{?0?0?2?1?};
g_VertexList[0]?=?v1;
g_VertexList[1]?=?v2;
g_VertexList[2]?=?v3;
g_VertexList[3]?=?v4;
g_Poly[0].VertexList?=?g_VertexList;
g_Poly[0].VertexIndexs[0]?=?0;
g_Poly[0].VertexIndexs[1]?=?2;
g_Poly[0].VertexIndexs[2]?=?1;
g_Poly[0].State?=?POLY_STATE_ACTIVE;
g_Poly[0].Color?=?ARGB(025500);
g_Poly[1].VertexList?=?g_VertexList;
g_Poly[1].VertexIndexs[0]?=?3;
g_Poly[1].VertexIndexs[1]?=?1;
g_Poly[1].VertexIndexs[2]?=?2;
g_Poly[1].State?=?POLY_STATE_ACTIVE;
g_Poly[1].Color?=?ARGB(002550);
g_Poly[2].VertexList?=?g_VertexList;
g_Poly[2].VertexIndexs[0]?=?0;
g_Poly[2].VertexIndexs[1]?=?3;
g_Poly[2].VertexIndexs[2]?=?2;
g_Poly[2].State?=?POLY_STATE_ACTIVE;
g_Poly[2].Color?=?ARGB(000255);
g_Poly[3].VertexList?=?g_VertexList;
g_Poly[3].VertexIndexs[0]?=?0;
g_Poly[3].VertexIndexs[1]?=?1;
g_Poly[3].VertexIndexs[2]?=?3;
g_Poly[3].State?=?POLY_STATE_ACTIVE;
g_Poly[3].Color?=?ARGB(02552550);
//?設置物體屬性
g_Obj.PolyCount?=?4;
g_Obj.PolyList[0]?=?g_Poly[0];
g_Obj.PolyList[1]?=?g_Poly[1];
g_Obj.PolyList[2]?=?g_Poly[2];
g_Obj.PolyList[3]?=?g_Poly[3];
g_Obj.VertexCount?=?4;
g_Obj.VertexListLocal[0]?=?g_VertexList[0];
g_Obj.VertexListLocal[1]?=?g_VertexList[1];
g_Obj.VertexListLocal[2]?=?g_VertexList[2];
g_Obj.VertexListLocal[3]?=?g_VertexList[3];
POINT4D?wp?=?{?0?0?5?1?};
g_Obj.WorldPos?=?wp;
//?設置相機
VECTOR4D?cwp?=?{?5?0?6?1?};
VECTOR4D?cdir?=?{?0?0?0?1?};
POINT4D?ctarget?=?{?0?0?5?1?};
VECTOR4D?cv?=?{?0?0?1?1?};
CameraCreate(&g_Camera?CAMERA_TYPE_UVN?&cwp?&cdir?&ctarget?&cv?0?5?50?90?SCREEN_WIDTH?SCREEN_HEIGHT);
CameraUpdateMatrix(&g_Camera);
//?緩存透視和屏幕變換矩陣
//?透視變換矩陣
BuildProjectMatrix(&g_Camera?&g_Camera.MatrixProjection);
//?屏幕變換矩陣
BuildScreenMatrix(&g_Camera?&g_Cam
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????6430??2011-02-26?12:34??CPPYIN.3DConsole\CPPYIN.3DConsole\CPPYIN.3DConsole.cpp
?????文件???????4677??2011-02-01?23:04??CPPYIN.3DConsole\CPPYIN.3DConsole\CPPYIN.3DConsole.vcxproj
?????文件???????1788??2011-02-01?23:04??CPPYIN.3DConsole\CPPYIN.3DConsole\CPPYIN.3DConsole.vcxproj.filters
?????文件????????143??2011-02-01?15:44??CPPYIN.3DConsole\CPPYIN.3DConsole\CPPYIN.3DConsole.vcxproj.user
?????文件??????26050??2011-02-27?09:09??CPPYIN.3DConsole\CPPYIN.3DConsole\CPPYIN.3DLib.cpp
?????文件???????6163??2011-02-26?12:55??CPPYIN.3DConsole\CPPYIN.3DConsole\CPPYIN.3DLib.h
?????文件?????????29??2011-02-01?23:04??CPPYIN.3DConsole\CPPYIN.3DConsole\CPPYIN.Diagnosis.cpp
?????文件????????103??2011-02-03?13:49??CPPYIN.3DConsole\CPPYIN.3DConsole\CPPYIN.Diagnosis.h
?????文件?????????26??2011-02-01?23:04??CPPYIN.3DConsole\CPPYIN.3DConsole\CPPYIN.Helper.cpp
?????文件?????????94??2011-02-03?13:49??CPPYIN.3DConsole\CPPYIN.3DConsole\CPPYIN.Helper.h
?????文件??????18762??2011-02-22?18:44??CPPYIN.3DConsole\CPPYIN.3DConsole\CPPYIN.Math.cpp
?????文件??????10796??2011-02-22?18:43??CPPYIN.3DConsole\CPPYIN.3DConsole\CPPYIN.Math.h
?????文件????????915??2011-02-01?15:44??CPPYIN.3DConsole\CPPYIN.3DConsole.sln
????..A..H.?????19968??2011-03-08?20:09??CPPYIN.3DConsole\CPPYIN.3DConsole.suo
?????目錄??????????0??2011-03-08?20:10??CPPYIN.3DConsole\CPPYIN.3DConsole
?????目錄??????????0??2011-03-08?20:10??CPPYIN.3DConsole
-----------?---------??----------?-----??----
????????????????95944????????????????????16
- 上一篇:clark等幅值變換的推導
- 下一篇:群星系列流明單片機的I2C寫法
評論
共有 條評論