我正在寻找一个应用程序,它可以在空间中加载一堆点,渲染它们并能够进行简单的3D操作(选择这样的点,旋转和移动视口)。
源必须可用,因为我想将它作为我自己的应用程序的基础。
答案 0 :(得分:0)
您可以使用directX来解决此问题。我使用delphi和directX完成了这个。 您也可以使用c#实现它。
可以在太空中加载一堆点
您可以通过读取文本文件或二进制文件并将其存储在缓冲区中来完成此操作。
TD3DXVector3 temppt = D3DXVector3(X,Y,Z);
此处,TD3DXVector3在directX中输入。
渲染
对于渲染,有一个IDirect3DDevice9的方法 DrawPrimitive ,使用它可以渲染点,线或三角形。
g_pd3dDevice.DrawPrimitive(D3DPT_TRIANGLELIST,0,count);
此处,Count是您想要绘制的三角形数。
选择此类点,旋转&移动视口
对于旋转和移动视口,您可以使用变换矩阵进行投影变换,视图变换和世界变换。
答案 1 :(得分: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();
答案 2 :(得分:0)
有几个开源3D编辑器,但你会发现它们中的大多数与特定的3D引擎相关联(即irrEdit =&gt; Irrlicht)。
有Blender,但我怀疑找到你想要的代码太复杂了。
在Googling的几分钟内,我找不到包含源代码的3D编辑器的简单示例,但我发现了这个,这可能很有用:
答案 3 :(得分:0)
有http://Clara.io,源代码不可用,但它是免费的,您可以轻松编写插件以自定义格式导入/导出,还可以在场景中添加自己的对象。