2010-05-03 172 views
0

我正在寻找一个应用程序,它可以在空间中加载一堆点,渲染它们并能够进行简单的3D操作(选择此类点,旋转&移动视口)。简单的3D编辑器/查看器

来源必须可用,因为我想将其用作我自己的应用程序的基础。

回答

0

您可以使用directX来解决此问题。我用delphi和directX做了这个。 你也可以用c#来实现它。

这可能是能够通过读取一个文本文件或二进制文件,你喜欢在空间
你可以做到这一点加载一堆点并将其存储在缓冲区中。

TD3DXVector3 temppt = D3DXVector3(X,Y,Z); 

这里,TD3DXVector3键入directX。

使其
进行渲染,有一种方法的IDirect3DDevice9的的DrawPrimitive,使用它可以使点,线或三角形。

g_pd3dDevice.DrawPrimitive(D3DPT_TRIANGLELIST,0,count); 

这里,Count是要绘制的三角形的数量。

选择这样的点,旋转&移动视窗
对于旋转和移动视窗,您可以使用变换矩阵进行投影变换,视角变换和世界的改造。

0

Allegro库更容易使用,除了它只有2d,可能有DirectX的3d接口。你需要知道C++。下面是随机像素的初始化文件:

您可以从allegro.cc获取库并使用visual studio进行编译。编辑: 继承人一个allegroGL的例子。它的allegro与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(); 
0

有几个开源的3D编辑器,但你会发现,他们大多是与特定的3D引擎相关(即irrEdit => Irrlicht的)。

有Blender,但我怀疑它太复杂了,找不到你想要的代码。

在谷歌搜索的几分钟,我一直没能找到一个3D编辑器源代码包含一个简单的例子,但我发现这一点,这可能是有用的:

Programming a 3D Editor

0

http://Clara.io,源代码不可用,但它是免费的,您可以轻松编写插件以自定义格式导入/导出,并在场景中添加自己的对象。