簡體   English   中英

簡單的3D編輯器/查看器

[英]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編輯器的簡單示例,但是我發現了這一點,這可能會很有用:

編程3D編輯器

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM