Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
57 changes: 23 additions & 34 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -14,56 +14,45 @@
# limitations under the License. #
# ======================================================================== #

if (POLICY CMP0048)
cmake_policy(SET CMP0048 NEW)
endif()
if (POLICY CMP0071)
cmake_policy(SET CMP0071 NEW)
endif()
project(Optix-OWL VERSION 1.0.4)
cmake_minimum_required(VERSION 2.8)
cmake_minimum_required(VERSION 3.12)

option(DUMP_FRAMES "DUMP_FRAMES" OFF)
if(${CMAKE_VERSION} VERSION_GREATER_EQUAL 3.18)
cmake_policy(SET CMP0104 NEW)
endif()

set(owl_dir ${PROJECT_SOURCE_DIR}/submodules/owl)
add_subdirectory(${owl_dir} EXCLUDE_FROM_ALL)
project(Optix-OWL VERSION 1.0.4 LANGUAGES C CXX CUDA)

set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${owl_dir}/owl/cmake/")
set(CMAKE_POSITION_INDEPENDENT_CODE ON)

include(configure_build_type)

add_definitions(${OWL_CXX_FLAGS})

include_directories(${OWL_INCLUDES})

add_subdirectory(submodules/owl EXCLUDE_FROM_ALL)
add_subdirectory(submodules/cuteeOWL EXCLUDE_FROM_ALL)

include(embed_ptx)

option(DUMP_FRAMES "DUMP_FRAMES" OFF)
if (DUMP_FRAMES)
add_definitions(-DDUMP_FRAMES=1)
endif()

include_directories(${QT_OWL_INCLUDES})

cuda_compile_and_embed(deviceCode_ptx deviceCode.cu)
set_property(SOURCE ${deviceCode_ptx} PROPERTY SKIP_AUTOMOC ON)

set(CUDA_NVCC_FLAGS "${CUDA_NVCC_FLAGS} ${OWL_CXX_FLAGS}")
find_package(Qt5Widgets REQUIRED)
set(CMAKE_AUTOMOC ON)
cuda_add_executable(owlDVRViewer
${deviceCode_ptx}
embed_ptx(
OUTPUT_TARGET
deviceCode_ptx
EMBEDDED_SYMBOL_NAMES
deviceCode_ptx
PTX_LINK_LIBRARIES
qtOWL
SOURCES
deviceCode.cu
)

add_executable(owlDVRViewer
viewer.cpp
Model.cpp
Renderer.cpp
SpaceSkipper.cu
)
)

target_link_libraries(owlDVRViewer
${OWL_LIBRARIES}
${QT_OWL_LIBRARIES}
)
#QT_OWL_LINK(owlDVRViewer)
target_link_libraries(owlDVRViewer PRIVATE qtOWL deviceCode_ptx)

# not needed for public release
#add_executable(dvrSubSampleTool
Expand Down
2 changes: 1 addition & 1 deletion submodules/owl
Submodule owl updated 219 files
56 changes: 28 additions & 28 deletions viewer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ namespace dvr {
using qtOWL::SimpleCamera;

const int XF_ALPHA_COUNT = 128;

struct {
bool showBoxes = 0;
// int spp = 4;
Expand All @@ -53,7 +53,7 @@ namespace dvr {
float dt = .5f;
vec2i windowSize = /*default: one quarter of screen*/vec2i(0); //vec2i(1024,1024);
} cmdline;

void usage(const std::string &err)
{
if (err != "")
Expand All @@ -64,11 +64,11 @@ namespace dvr {
std::cout << std::endl;
exit(1);
}

struct Viewer : public qtOWL::OWLViewer {
public:
typedef qtOWL::OWLViewer inherited;

Viewer(Renderer *renderer,
qtOWL::XFEditor *xfEditor)
: inherited("owlDVR Sample Viewer", cmdline.windowSize),
Expand All @@ -78,7 +78,7 @@ namespace dvr {
renderer->set_dt(cmdline.dt);
renderer->setColorMap(xfEditor->getColorMap());
}

/*! this function gets called whenever the viewer widget changes
camera settings */
void cameraChanged() override;
Expand Down Expand Up @@ -138,30 +138,30 @@ namespace dvr {
break;
}
}


// signals:
// ;
public slots:
void colorMapChanged(qtOWL::XFEditor *xf);
void rangeChanged(interval<double> r);
void rangeChanged(range1f r);
void opacityScaleChanged(double scale);

public:

Renderer *const renderer;
/* pointer to xf editor, so we can sve transfer functions on keypress */
qtOWL::XFEditor *const xfEditor;
};

void Viewer::colorMapChanged(qtOWL::XFEditor *xfEditor)
{
renderer->setColorMap(xfEditor->getColorMap());
renderer->resetAccum();
}

// re-map [0,1] range from gui to actual value range
void Viewer::rangeChanged(interval<double> r)
void Viewer::rangeChanged(range1f r)
{
float lo = min(r.lower,r.upper);
float hi = max(r.lower,r.upper);
Expand All @@ -179,39 +179,39 @@ namespace dvr {
}


void Viewer::resize(const vec2i &newSize)
void Viewer::resize(const vec2i &newSize)
{
// ... tell parent to resize (also resizes the pbo in the wingdow)
inherited::resize(newSize);
cameraChanged();
renderer->resetAccum();
}

/*! this function gets called whenever the viewer widget changes
camera settings */
void Viewer::cameraChanged()
void Viewer::cameraChanged()
{
inherited::cameraChanged();
const SimpleCamera &camera = inherited::getCamera();

const vec3f screen_du = camera.screen.horizontal / float(getWindowSize().x);
const vec3f screen_dv = camera.screen.vertical / float(getWindowSize().y);
const vec3f screen_00 = camera.screen.lower_left;
renderer->setCamera(camera.lens.center,screen_00,screen_du,screen_dv);
renderer->resetAccum();
}


/*! gets called whenever the viewer needs us to re-render out widget */
void Viewer::render()
void Viewer::render()
{
static double t_last = getCurrentTime();
static double t_first = t_last;

if (renderer->alwaysRebuild)
colorMapChanged(xfEditor);
renderer->render(fbSize,fbPointer);

double t_now = getCurrentTime();
static double avg_t = t_now-t_last;
// if (t_last >= 0)
Expand Down Expand Up @@ -245,11 +245,11 @@ namespace dvr {
extern "C" int main(int argc, char **argv)
{
QApplication app(argc,argv);

std::string inFileName;

// Viewer::initGlut(argc,argv);

for (int i=1;i<argc;i++) {
const std::string arg = argv[i];
if (arg[0] != '-') {
Expand Down Expand Up @@ -313,14 +313,14 @@ namespace dvr {
else
usage("unknown cmdline arg '"+arg+"'");
}

if (inFileName == "")
usage("no filename specified");
if (cmdline.formatString == "")
usage("no format string specified (-f float|uchar)");
if (cmdline.dims == vec3i(0))
usage("no volume dims specified (-dims x y z)");

Model::SP model = Model::load(inFileName,cmdline.dims,cmdline.formatString,
cmdline.subBrickID,cmdline.subBrickSize);

Expand All @@ -329,11 +329,11 @@ namespace dvr {
#else
const box3f modelBounds = model->getBounds();
#endif

qtOWL::XFEditor *xfEditor = new qtOWL::XFEditor;
Renderer renderer(model);
renderer.setShowBoxesMode(cmdline.showBoxes);

Viewer *viewer = new Viewer(&renderer,xfEditor);
// viewer->resize(QSize(128,128));
// if (cmdline.windowSize != vec2i(0))
Expand Down Expand Up @@ -365,19 +365,19 @@ namespace dvr {
viewer, &Viewer::rangeChanged);
QObject::connect(xfEditor,&qtOWL::XFEditor::opacityScaleChanged,
viewer, &Viewer::opacityScaleChanged);


if (cmdline.xfFileName != "")
xfEditor->loadFrom(cmdline.xfFileName);

QMainWindow guiWindow;
guiWindow.setCentralWidget(xfEditor);

viewer->show();
guiWindow.show();

return app.exec();
}

}