在c++中使用panda3d而不使用图形

using panda3d without graphic stuff in c++?

本文关键字:图形 panda3d c++      更新时间:2023-10-16

我正在尝试编写一个无窗口的panda3d程序,作为一个专用服务器。我不知道如何在不创建任何图形的情况下使用panda3d。

我试过这个:

load_prc_file_data("", "window-type none"); // do not effect.
load_prc_file_data("", "window-type offscreen"); // cause errors while running PandaFramework::open_window();

事实上,我在Panda3d论坛上发布了这篇文章
唯一回答的人告诉我不要做PandaFramework::open_window();但在panda3d-cpp中,我不知道没有WindowFramework如何工作,老实说,我甚至不知道程序是否正确工作。

当前使用:Panda3.9.2Qt5.7.0MSVC2015Windows10SDK

.pro文件的完整核心:

TEMPLATE = app
CONFIG += console c++11
CONFIG -= app_bundle
CONFIG -= qt
SOURCES += main.cpp
INCLUDEPATH += "G:/Panda3D-1.9.2/include"
INCLUDEPATH += "G:/Panda3D-1.9.2/python/include"
LIBS += "G:/Panda3D-1.9.2/python/libs/python27.lib"
LIBS += "G:/Panda3D-1.9.2/lib/libp3framework.lib"
LIBS += "G:/Panda3D-1.9.2/lib/libpanda.lib"
LIBS += "G:/Panda3D-1.9.2/lib/libpandafx.lib"
LIBS += "G:/Panda3D-1.9.2/lib/libpandaexpress.lib"
LIBS += "G:/Panda3D-1.9.2/lib/libp3dtool.lib"
LIBS += "G:/Panda3D-1.9.2/lib/libp3dtoolconfig.lib"
LIBS += "G:/Panda3D-1.9.2/lib/libp3pystub.lib"
LIBS += "G:/Panda3D-1.9.2/lib/libp3direct.lib"

.cpp文件的完整核心:

#include <pandaFramework.h>
#include <pandaSystem.h>
#include <load_prc_file.h>
int main(int argc, char *argv[])
{
    PandaFramework pFramework;
    pFramework.open_framework(argc, argv);
    load_prc_file_data("", "window-type offscreen"); // cause errors
    WindowFramework *pWindow = pFramework.open_window();
    pFramework.main_loop();
    pFramework.close_framework();
    return 0;
}

有人能帮我吗?

很简单:如果你不想打开一个窗口,就不要调用open_window。您仍然可以访问AsyncTaskManager::get_global_ptr()来调度任务,访问Loader来加载模型,并且您可以通过创建NodePath(new PandaNode("root"))并将对象附加到它上来创建场景图,等等。

window-type.prc变量在PandaFramework中没有任何作用,因为在那里创建窗口是一个显式操作。