[英]Simple 3D Editor/Viewer
我正在尋找一個應用程序,該應用程序可以在空間中加載一堆點,渲染它們並能夠進行簡單的3D操作(選擇此類點,旋轉和移動視口)。
源必須可用,因為我想將其用作我自己的應用程序的基礎。
這里有http://Clara.io ,該源不可用,但它是免費的,您可以輕松編寫插件以自定義格式導入/導出,還可以在場景中添加自己的對象。
您可以使用DirectX解決此問題。 我已經使用delphi和directX做到了。 您也可以使用c#來實現它。
這可能能夠在空間中加載一堆點
您可以根據需要讀取文本文件或二進制文件並將其存儲在緩沖區中,以實現此目的。
TD3DXVector3 temppt = D3DXVector3(X,Y,Z);
在這里,TD3DXVector3是directX的類型。
渲染它們
對於渲染,有一種IDirect3DDevice9的DrawPrimitive方法,可以使用該方法渲染點,線或三角形。
g_pd3dDevice.DrawPrimitive(D3DPT_TRIANGLELIST,0,count);
在這里,計數是您要繪制的三角形的數量。
選擇該點,旋轉和移動視口
對於旋轉和移動視口,可以將變換矩陣用於投影變換,視圖變換和世界變換。
Allegro庫只有2d易於使用,不過DirectX可能有3d接口。 您需要了解C ++。 這是隨機像素的初始化文件:
您可以從allegro.cc獲取庫並使用Visual Studio對其進行編譯。
編輯:這是一個allegroGL示例。 它的快板與openGL相結合。 http://www.allegro.cc/forums/thread/589211
#include <conio.h>
#include <stdlib.h>
#include "allegro.h"
int main()
{
int x,y,x1,y1,x2,y2;
int red, green, blue, color;
allegro_init();
install_keyboard();
srand(time(NULL));
int ret = set_gfx_mode(GFX_AUTODETECT_WINDOWED, 640,480,0,0);
if (ret != 0)
{
allegro_message(allegro_error);
return 0;
}
//textprintf(screen, font, 0,0,15,"Pixels program - %dx%d - press esc to quit", SCREEN_W, SCREEN_H);
while(!key[KEY_ESC])
{
x = 10+rand()%(SCREEN_W - 20);
y = 10+rand()%(SCREEN_H - 20);
red = rand() % 255;
green = rand() % 255;
blue = rand() % 255;
color = makecol(red,green,blue);
putpixel(screen,x,y,color);
}
allegro_exit();
}
END_OF_MAIN();
有幾種開源3D編輯器,但是您會發現其中大多數都與特定的3D引擎關聯(即irrEdit => Irrlicht)。
有Blender,但是我懷疑它太復雜了,找不到您想要的代碼。
在Google搜尋的幾分鍾內,我找不到包含源代碼的3D編輯器的簡單示例,但是我發現了這一點,這可能會很有用:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.