渲染SDK 0.1.2
载入中...
搜索中...
未找到
体渲染

概述

本教程提供了 AMCAXRender 云图模块的使用教程,可通过该教程了解简单加载云图对象,使用体渲染。

描述

本示例程序,加载指定的体素数据,渲染到场景中。

示例代码:

效果图:

main.cpp

#include "VisltDemo.h"
#include "ui_VisltDemo.h"
#include <iostream>
VisltDemoWindow::VisltDemoWindow(QWidget* parent)
: QMainWindow(parent), ui(new Ui::MainWindow)
{
ui->setupUi(this);
//创建引擎
render = AMCAXRender::CreateRenderComponent(this)->CreateBasicRender();
setCentralWidget(render->widget);
//创建云图对象
auto vislt = render->cloudVisltFactory->ReadFile("FullHead.mhd");
//获取云图对象标量名称
auto names = vislt->GetScalarNames();
//添加云图对象到渲染场景,设置体渲染
auto id = render->cloudVisltManage->AddCloudVislt(vislt, names[0], 1);
//隐藏映射映射表
render->cloudVisltManage->SetVisibleColorMap(false);
//重置相机
render->cameraManage->ResetCamera();
//刷新场景
render->entityManage->DoRepaint();
}
VisltDemoWindow::~VisltDemoWindow()
{
delete ui;
}
AMCAX_RENDER_API std::shared_ptr< IRenderComponent > CreateRenderComponent(QWidget *parent)
Create Render Component

VisltDemo.h

#ifndef VisltDemo_h
#define VisltDemo_h
#include <QMainWindow>
#include <AMCAXRender.h>
namespace Ui {
class MainWindow;
}
class VisltDemoWindow : public QMainWindow
{
Q_OBJECT
public:
// Constructor/Destructor
explicit VisltDemoWindow(QWidget* parent = nullptr);
virtual ~VisltDemoWindow();
private:
// Designer form
Ui::MainWindow* ui = nullptr;
std::shared_ptr<AMCAXRender::CBasicRender> render;
};
#endif
Component Creation

VisltDemo.ui

<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>800</width>
<height>600</height>
</rect>
</property>
<property name="windowTitle">
<string>MainWindow</string>
</property>
<widget class="QWidget" name="centralwidget"/>
<widget class="QMenuBar" name="menubar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>800</width>
<height>22</height>
</rect>
</property>
<widget class="QMenu" name="menufile">
<property name="title">
<string>file</string>
</property>
<addaction name="actionopenFile"/>
</widget>
<addaction name="menufile"/>
</widget>
<widget class="QStatusBar" name="statusbar"/>
<action name="actionopenFile">
<property name="text">
<string>openFile</string>
</property>
</action>
</widget>
<resources/>
<connections/>
</ui>

CMakeLists.txt

cmake_minimum_required (VERSION 3.12)
project ("VisltDemo")
find_package(AMCAXRender REQUIRED)
find_package(Qt6 COMPONENTS Widgets Core Gui REQUIRED)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
set(PROJECT_FILES
main.cpp
VisltDemo.cpp
VisltDemo.ui
)
add_executable (VisltDemo ${PROJECT_FILES} )
target_link_libraries(VisltDemo PRIVATE Qt6::Core Qt6::Gui Qt6::Widgets)
target_link_libraries(VisltDemo PRIVATE AMCAXRender::AMCAXRender)