繁体   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