High performance physically based renderer in C++11

Overview

Tungsten Sample Render

The Tungsten Renderer

About

Tungsten is a physically based renderer originally written for the yearly renderer competition at ETH. It simulates full light transport through arbitrary geometry based on unbiased integration of the rendering equation. To do this, Tungsten supports various light transport algorithms such as bidirectional path tracing, progressive photon mapping, primary sample space metropolis light transport and more.

Tungsten is written in C++11 and makes use of Intel's high-performance geometry intersection library embree. Tungsten takes full advantage of multicore systems and tries to offer good performance through frequent benchmarking and optimization. At least SSE3 support is required to run the renderer.

Documentation

Documentation is planned, but currently unavailable (sorry!). A lengthy overview of features is available in the final project report written as part of the submission for the rendering competition, although that document may be outdated.

A small selection of example scenes can be found in data/example-scenes. There is also a material test scene found in data/materialtest, which contains the Tungsten material test ball that you can use to test different materials and lighting setups..

License

To give developers as much freedom as is reasonable, Tungsten is distributed under the libpng/zlib license. This allows you to modify, redistribute and sell all or parts of the code without attribution.

Note that Tungsten includes several third-party libraries in the src/thirdparty folder that come with their own licenses. Please see the LICENSE.txt file for more information.

Compilation

Windows + MinGW

To build using MinGW, you will need a recent CMake + gcc version. CMake binary distributions are available here. I recommend using MinGW-w64 available here.

In the root folder of the repo, use these commands in an MSYS shell to build:

./setup_builds.sh
cd builds/release
make

The binaries will be placed in the build/release directory after buiding.

Optionally, you can install the Qt framework to build the scene editor utility. If Qt is not detected during setup, the scene editor will not be built (you will still be able to use the renderer).

Windows + MSVC

To build using MSVC, you will need a recent CMake version and MSVC 2013. CMake binary distributions are available here.

After installing CMake, double click the setup_builds.bat file. The MSVC project will be created in the folder vstudio. Open the vstudio/Tungsten.sln solution and press F7 to build.

Linux

Building on Linux works just like building on MINGW.

Usage

The core renderer can be invoked using

tungsten scene.json

You can also queue up multiple scenes using

tungsten scene1.json scene2.json scene3.json

and so forth. All renderer parameters, including output files, are specified in the json file.

You can test your local build by rendering the material test scene in data/materialtest/materialtest.json.

You can also use

tungsten --help

for more information.

Code structure

src/core/ contains all the code for primitive intersection, materials, sampling, integration and so forth. It is the beefy part of the renderer and the place to start if you're interested in studying the code.

src/thirdparty contains all the libraries used in the project. They are included in the repository, since most of them are either tiny single-file libraries or, in the case of embree, had to be modified to work with the renderer.

src/tungsten contains the rendering application itself, which is just a small command line interface to the core rendering code.

All other folders in src are small utilities described below.

Additional utilities

Apart from the core renderer, Tungsten also comes with several tools to make content creation easier.

tungsten_server

This is a standalone version of the renderer that comes with a built-in HTTP status server.

It will serve the following files:

  • /render: The current framebuffer (possibly in an incomplete state).
  • /status: A JSON string containing information about the current render status.
  • /log: A text version of the render log.

Use

tungsten_server --help

for more information.

scenemanip

scenemanip comes with a range of tools to manipulate scene files, among others the capability to package scenes and all references resources (textures, meshes, etc.) into a zip archive.

Use

scenemanip --help

for more information.

hdrmanip

hdrmanip comes with a few useful tools for manipulating HDR output files produced by the renderer. Where available, we recommend using established image manipulation tools, but where HDR support is sparsely available, this tool can be useful.

To convert an HDR image to low dynamic range, use

hdrmanip -o output.png input.exr

You can also specify the tonemapping operator to be applied when converting. For example, to use a filmic tonemap, use

hdrmanip --tonemap filmic -o output.png input.exr

To adjust the exposure of an HDR file, you can use

hdrmanip --exposure -1.0 -o output.exr input.exr

If you don't specify an output file, the tool will overwrite the input file. You can also modify several input files at once. For example, you can use

hdrmanip --exposure -1.0 input1.exr input2.exr input3.exr

to adjust the exposure of several files at once.

If you don't want to overwrite the input files, you can specify an output directory with -o

hdrmanip -o outputdir --exposure -1.0 input1.exr input2.exr input3.exr 

When specifying multiple files, -o is interpreted as an output directory, and its file extension is ignored. If you want to convert multiple input files to a different file format or even low dynamic range, you can use --file-type

hdrmanip --file-type png input1.exr input2.exr input3.exr

Finally, hdrmanip also supports merging multiple HDR files together. This is useful when you split up a render across several machines and want to average the outputs to get a less noisy image. You can use --merge for this

hdrmanip --merge -o output.exr input1.exr input2.exr input3.exr

Of course, you can also adjust the exposure and convert to low dynamic range while merging, all in one step.

Use

hdrmanip --help

for more information.

obj2json

The command

obj2json srcFile.obj dstFile.json

will parse the Wavefront OBJ srcFile.obj, including object hierarchy and materials, and create a scene file dstFile.json reproducing hierarchy and material assignments.

In addition, meshes in the OBJ file will be automatically converted and saved to Tungsten's native *.wo3 mesh format, which significantly reduces loading time for large meshes. This may create a large number of new files - consider pointing the dstFile.json path into an empty subfolder to avoid file clutter.

json2xml

The command

json2xml srcFile.json dstFile.xml

will parse the scene file srcFile.json and convert it to an XML scene description compatible with the Mitsuba renderer. All *.wo3 files will be converted to Mitsuba compatible OBJs, which may create a large number of new files - consider putting dstFile.xml into an empty subfolder to avoid file clutter.

Note that this tool does not experience heavy testing and does not support all features of Tungsten, so it may not always work as expected.

editor

This is a minimalist scene editor written in Qt and OpenGL. It supports camera setup, manipulating transforms, compositing scenes and a few more features that I found useful.

It is usable, but a few crucial features are currently missing from it (including documentation). The code is neither exceptionally clean nor stable, so use at your own risk.

Comments
  • issue compiling the code

    issue compiling the code

    I just wanted to test it out... installed qt4 and glew..opengl was there... tried compiling and get the bellow...am I missing something?

    Error 33 error C2864: 'Tungsten::PreviewWindow::Fov' : a static data member with an in-class initializer must have non-volatile const integral type c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\PreviewWindow.hpp 57 1 editor Error 34 error C2864: 'Tungsten::PreviewWindow::Near' : a static data member with an in-class initializer must have non-volatile const integral type c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\PreviewWindow.hpp 58 1 editor Error 35 error C2864: 'Tungsten::PreviewWindow::Far' : a static data member with an in-class initializer must have non-volatile const integral type c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\PreviewWindow.hpp 59 1 editor Error 36 error C2797: 'Tungsten::PreviewWindow::DefaultPriorities': list initialization inside member initializer list or non-static data member initializer is not implemented c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\PreviewWindow.hpp 67 1 editor Error 40 error C2065: 'uint8_t' : undeclared identifier C:\Users\jpetrovic\Downloads\tungsten-master\tungsten-master\src\editor\opengl\Texture.cpp 279 1 editor Error 41 error C2059: syntax error : ')' C:\Users\jpetrovic\Downloads\tungsten-master\tungsten-master\src\editor\opengl\Texture.cpp 279 1 editor Error 50 error C2864: 'Tungsten::PreviewWindow::Fov' : a static data member with an in-class initializer must have non-volatile const integral type c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\PreviewWindow.hpp 57 1 editor Error 51 error C2864: 'Tungsten::PreviewWindow::Near' : a static data member with an in-class initializer must have non-volatile const integral type c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\PreviewWindow.hpp 58 1 editor Error 52 error C2864: 'Tungsten::PreviewWindow::Far' : a static data member with an in-class initializer must have non-volatile const integral type c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\PreviewWindow.hpp 59 1 editor Error 53 error C2797: 'Tungsten::PreviewWindow::DefaultPriorities': list initialization inside member initializer list or non-static data member initializer is not implemented c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\PreviewWindow.hpp 67 1 editor Error 54 error C2734: 'Tungsten::PreviewWindow::Fov' : const object must be initialized if not extern C:\Users\jpetrovic\Downloads\tungsten-master\tungsten-master\src\editor\PreviewWindow.cpp 22 1 editor Error 55 error C2734: 'Tungsten::PreviewWindow::Near' : const object must be initialized if not extern C:\Users\jpetrovic\Downloads\tungsten-master\tungsten-master\src\editor\PreviewWindow.cpp 23 1 editor Error 56 error C2734: 'Tungsten::PreviewWindow::Far' : const object must be initialized if not extern C:\Users\jpetrovic\Downloads\tungsten-master\tungsten-master\src\editor\PreviewWindow.cpp 24 1 editor Error 57 error C2143: syntax error : missing ';' before '}' C:\Users\jpetrovic\Downloads\tungsten-master\tungsten-master\src\editor\PreviewWindow.cpp 38 1 editor Error 58 error C2143: syntax error : missing ';' before '}' C:\Users\jpetrovic\Downloads\tungsten-master\tungsten-master\src\editor\PreviewWindow.cpp 44 1 editor Error 59 error C2039: 'function' : is not a member of 'std' c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.hpp 40 1 editor Error 60 error C2061: syntax error : identifier 'function' c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.hpp 40 1 editor Error 61 error C2039: 'function' : is not a member of 'std' c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.hpp 41 1 editor Error 62 error C2061: syntax error : identifier 'function' c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.hpp 41 1 editor Error 63 error C2039: 'function' : is not a member of 'std' c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.hpp 42 1 editor Error 64 error C2061: syntax error : identifier 'function' c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.hpp 42 1 editor Error 65 error C2039: 'function' : is not a member of 'std' c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.hpp 44 1 editor Error 66 error C2061: syntax error : identifier 'function' c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.hpp 44 1 editor Error 67 error C2039: 'function' : is not a member of 'std' c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.hpp 46 1 editor Error 68 error C2061: syntax error : identifier 'function' c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.hpp 46 1 editor Error 69 error C2039: 'function' : is not a member of 'std' c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.hpp 49 1 editor Error 70 error C2061: syntax error : identifier 'function' c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.hpp 49 1 editor Error 71 error C2039: 'function' : is not a member of 'std' c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.hpp 51 1 editor Error 72 error C2061: syntax error : identifier 'function' c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.hpp 51 1 editor Error 73 error C2039: 'function' : is not a member of 'std' c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.hpp 53 1 editor Error 74 error C2061: syntax error : identifier 'function' c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.hpp 53 1 editor Error 75 error C2039: 'function' : is not a member of 'std' c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.hpp 55 1 editor Error 76 error C2061: syntax error : identifier 'function' c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.hpp 55 1 editor Error 77 error C2039: 'function' : is not a member of 'std' c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.hpp 57 1 editor Error 78 error C2061: syntax error : identifier 'function' c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.hpp 57 1 editor Error 79 error C2039: 'function' : is not a member of 'std' c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.hpp 59 1 editor Error 80 error C2061: syntax error : identifier 'function' c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.hpp 59 1 editor Error 81 error C2660: 'Tungsten::PropertySheet::addBsdfProperty' : function does not take 5 arguments C:\Users\jpetrovic\Downloads\tungsten-master\tungsten-master\src\editor\properties\BsdfProperties.cpp 14 1 editor Error 88 error C2039: 'function' : is not a member of 'std' c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.hpp 40 1 editor Error 89 error C2061: syntax error : identifier 'function' c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.hpp 40 1 editor Error 90 error C2039: 'function' : is not a member of 'std' c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.hpp 41 1 editor Error 91 error C2061: syntax error : identifier 'function' c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.hpp 41 1 editor Error 92 error C2039: 'function' : is not a member of 'std' c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.hpp 42 1 editor Error 93 error C2061: syntax error : identifier 'function' c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.hpp 42 1 editor Error 94 error C2039: 'function' : is not a member of 'std' c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.hpp 44 1 editor Error 95 error C2061: syntax error : identifier 'function' c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.hpp 44 1 editor Error 96 error C2039: 'function' : is not a member of 'std' c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.hpp 46 1 editor Error 97 error C2061: syntax error : identifier 'function' c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.hpp 46 1 editor Error 98 error C2039: 'function' : is not a member of 'std' c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.hpp 49 1 editor Error 99 error C2061: syntax error : identifier 'function' c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.hpp 49 1 editor Error 100 error C2039: 'function' : is not a member of 'std' c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.hpp 51 1 editor Error 101 error C2061: syntax error : identifier 'function' c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.hpp 51 1 editor Error 102 error C2039: 'function' : is not a member of 'std' c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.hpp 53 1 editor Error 103 error C2061: syntax error : identifier 'function' c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.hpp 53 1 editor Error 104 error C2039: 'function' : is not a member of 'std' c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.hpp 55 1 editor Error 105 error C2061: syntax error : identifier 'function' c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.hpp 55 1 editor Error 106 error C2039: 'function' : is not a member of 'std' c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.hpp 57 1 editor Error 107 error C2061: syntax error : identifier 'function' c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.hpp 57 1 editor Error 108 error C2039: 'function' : is not a member of 'std' c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.hpp 59 1 editor Error 109 error C2061: syntax error : identifier 'function' c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.hpp 59 1 editor Error 110 error C2660: 'Tungsten::PropertySheet::addStringProperty' : function does not take 3 arguments C:\Users\jpetrovic\Downloads\tungsten-master\tungsten-master\src\editor\properties\PrimitiveProperties.cpp 15 1 editor Error 111 error C2660: 'Tungsten::PropertySheet::addTextureProperty' : function does not take 6 arguments C:\Users\jpetrovic\Downloads\tungsten-master\tungsten-master\src\editor\properties\PrimitiveProperties.cpp 21 1 editor Error 112 error C2660: 'Tungsten::PropertySheet::addMediumProperty' : function does not take 4 arguments C:\Users\jpetrovic\Downloads\tungsten-master\tungsten-master\src\editor\properties\PrimitiveProperties.cpp 25 1 editor Error 113 error C2660: 'Tungsten::PropertySheet::addMediumProperty' : function does not take 4 arguments C:\Users\jpetrovic\Downloads\tungsten-master\tungsten-master\src\editor\properties\PrimitiveProperties.cpp 29 1 editor Error 114 error C2039: 'function' : is not a member of 'std' c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.hpp 40 1 editor Error 115 error C2061: syntax error : identifier 'function' c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.hpp 40 1 editor Error 116 error C2039: 'function' : is not a member of 'std' c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.hpp 41 1 editor Error 117 error C2061: syntax error : identifier 'function' c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.hpp 41 1 editor Error 118 error C2039: 'function' : is not a member of 'std' c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.hpp 42 1 editor Error 119 error C2061: syntax error : identifier 'function' c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.hpp 42 1 editor Error 120 error C2039: 'function' : is not a member of 'std' c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.hpp 44 1 editor Error 121 error C2061: syntax error : identifier 'function' c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.hpp 44 1 editor Error 122 error C2039: 'function' : is not a member of 'std' c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.hpp 46 1 editor Error 123 error C2061: syntax error : identifier 'function' c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.hpp 46 1 editor Error 124 error C2039: 'function' : is not a member of 'std' c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.hpp 49 1 editor Error 125 error C2061: syntax error : identifier 'function' c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.hpp 49 1 editor Error 126 error C2039: 'function' : is not a member of 'std' c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.hpp 51 1 editor Error 127 error C2061: syntax error : identifier 'function' c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.hpp 51 1 editor Error 128 error C2039: 'function' : is not a member of 'std' c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.hpp 53 1 editor Error 129 error C2061: syntax error : identifier 'function' c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.hpp 53 1 editor Error 130 error C2039: 'function' : is not a member of 'std' c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.hpp 55 1 editor Error 131 error C2061: syntax error : identifier 'function' c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.hpp 55 1 editor Error 132 error C2039: 'function' : is not a member of 'std' c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.hpp 57 1 editor Error 133 error C2061: syntax error : identifier 'function' c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.hpp 57 1 editor Error 134 error C2039: 'function' : is not a member of 'std' c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.hpp 59 1 editor Error 135 error C2061: syntax error : identifier 'function' c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.hpp 59 1 editor Error 136 error C2511: 'Tungsten::BoolProperty *Tungsten::PropertySheet::addBoolProperty(int,std::string,std::function<bool (bool)>)' : overloaded member function not found in 'Tungsten::PropertySheet' C:\Users\jpetrovic\Downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.cpp 25 1 editor Error 137 error C2597: illegal reference to non-static member 'Tungsten::PropertySheet::_parent' C:\Users\jpetrovic\Downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.cpp 26 1 editor Error 138 error C2671: 'Tungsten::PropertySheet::addBoolProperty' : static member functions do not have 'this' pointers C:\Users\jpetrovic\Downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.cpp 26 1 editor Error 139 error C2228: left of '.emplace_back' must have class/struct/union C:\Users\jpetrovic\Downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.cpp 27 1 editor Error 140 error C2511: 'Tungsten::IntProperty *Tungsten::PropertySheet::addIntProperty(int,int,int,std::string,std::function<bool (int)>)' : overloaded member function not found in 'Tungsten::PropertySheet' C:\Users\jpetrovic\Downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.cpp 32 1 editor Error 141 error C2597: illegal reference to non-static member 'Tungsten::PropertySheet::_parent' C:\Users\jpetrovic\Downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.cpp 33 1 editor Error 142 error C2671: 'Tungsten::PropertySheet::addIntProperty' : static member functions do not have 'this' pointers C:\Users\jpetrovic\Downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.cpp 33 1 editor Error 143 error C2228: left of '.emplace_back' must have class/struct/union C:\Users\jpetrovic\Downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.cpp 34 1 editor Error 144 error C2511: 'Tungsten::FloatProperty *Tungsten::PropertySheet::addFloatProperty(float,std::string,std::function<bool (float)>)' : overloaded member function not found in 'Tungsten::PropertySheet' C:\Users\jpetrovic\Downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.cpp 39 1 editor Error 145 error C2597: illegal reference to non-static member 'Tungsten::PropertySheet::_parent' C:\Users\jpetrovic\Downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.cpp 40 1 editor Error 146 error C2671: 'Tungsten::PropertySheet::addFloatProperty' : static member functions do not have 'this' pointers C:\Users\jpetrovic\Downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.cpp 40 1 editor Error 147 error C2228: left of '.emplace_back' must have class/struct/union C:\Users\jpetrovic\Downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.cpp 41 1 editor Error 148 error C2511: 'Tungsten::VectorProperty *Tungsten::PropertySheet::addVectorProperty(Tungsten::Vec3f,std::string,bool,std::function<bool (Tungsten::Vec3f)>)' : overloaded member function not found in 'Tungsten::PropertySheet' C:\Users\jpetrovic\Downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.cpp 47 1 editor Error 149 error C2597: illegal reference to non-static member 'Tungsten::PropertySheet::_parent' C:\Users\jpetrovic\Downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.cpp 48 1 editor Error 150 error C2671: 'Tungsten::PropertySheet::addVectorProperty' : static member functions do not have 'this' pointers C:\Users\jpetrovic\Downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.cpp 48 1 editor Error 151 error C2228: left of '.emplace_back' must have class/struct/union C:\Users\jpetrovic\Downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.cpp 49 1 editor Error 152 error C2511: 'Tungsten::StringProperty *Tungsten::PropertySheet::addStringProperty(std::string,std::string,std::function<bool (const std::string &)>)' : overloaded member function not found in 'Tungsten::PropertySheet' C:\Users\jpetrovic\Downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.cpp 54 1 editor Error 153 error C2597: illegal reference to non-static member 'Tungsten::PropertySheet::_parent' C:\Users\jpetrovic\Downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.cpp 55 1 editor Error 154 error C2671: 'Tungsten::PropertySheet::addStringProperty' : static member functions do not have 'this' pointers C:\Users\jpetrovic\Downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.cpp 55 1 editor Error 155 error C2228: left of '.emplace_back' must have class/struct/union C:\Users\jpetrovic\Downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.cpp 57 1 editor Error 156 error C2511: 'Tungsten::PathProperty *Tungsten::PropertySheet::addPathProperty(std::string,std::string,std::string,std::string,std::string,std::function<bool (const std::string &)>)' : overloaded member function not found in 'Tungsten::PropertySheet' C:\Users\jpetrovic\Downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.cpp 64 1 editor Error 157 error C2597: illegal reference to non-static member 'Tungsten::PropertySheet::_parent' C:\Users\jpetrovic\Downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.cpp 65 1 editor Error 158 error C2671: 'Tungsten::PropertySheet::addPathProperty' : static member functions do not have 'this' pointers C:\Users\jpetrovic\Downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.cpp 65 1 editor Error 159 error C2228: left of '.emplace_back' must have class/struct/union C:\Users\jpetrovic\Downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.cpp 68 1 editor Error 160 error C2511: 'Tungsten::ListProperty *Tungsten::PropertySheet::addListProperty(std::vectorstd::string,std::allocator<_Ty>,std::string,std::string,std::function<bool (const std::string &,int)>)' : overloaded member function not found in 'Tungsten::PropertySheet' C:\Users\jpetrovic\Downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.cpp 74 1 editor Error 161 error C2597: illegal reference to non-static member 'Tungsten::PropertySheet::_parent' C:\Users\jpetrovic\Downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.cpp 75 1 editor Error 162 error C2671: 'Tungsten::PropertySheet::addListProperty' : static member functions do not have 'this' pointers C:\Users\jpetrovic\Downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.cpp 75 1 editor Error 163 error C2228: left of '.emplace_back' must have class/struct/union C:\Users\jpetrovic\Downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.cpp 77 1 editor Error 164 error C2511: 'Tungsten::ListProperty *Tungsten::PropertySheet::addListProperty(std::vectorstd::string,std::allocator<_Ty>,int,std::string,std::function<bool (const std::string &,int)>)' : overloaded member function not found in 'Tungsten::PropertySheet' C:\Users\jpetrovic\Downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.cpp 83 1 editor Error 165 error C2597: illegal reference to non-static member 'Tungsten::PropertySheet::_parent' C:\Users\jpetrovic\Downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.cpp 84 1 editor Error 166 error C2671: 'Tungsten::PropertySheet::addListProperty' : static member functions do not have 'this' pointers C:\Users\jpetrovic\Downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.cpp 84 1 editor Error 167 error C2228: left of '.emplace_back' must have class/struct/union C:\Users\jpetrovic\Downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.cpp 86 1 editor Error 168 error C2511: 'Tungsten::TextureProperty *Tungsten::PropertySheet::addTextureProperty(std::shared_ptrTungsten::Texture,std::string,bool,Tungsten::Scene *,Tungsten::TexelConversion,std::function<bool (std::shared_ptrTungsten::Texture &)>)' : overloaded member function not found in 'Tungsten::PropertySheet' C:\Users\jpetrovic\Downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.cpp 93 1 editor Error 169 error C2597: illegal reference to non-static member 'Tungsten::PropertySheet::_parent' C:\Users\jpetrovic\Downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.cpp 94 1 editor Error 170 error C2671: 'Tungsten::PropertySheet::addTextureProperty' : static member functions do not have 'this' pointers C:\Users\jpetrovic\Downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.cpp 94 1 editor Error 171 error C2228: left of '.emplace_back' must have class/struct/union C:\Users\jpetrovic\Downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.cpp 96 1 editor Error 172 error C2511: 'Tungsten::BsdfProperty *Tungsten::PropertySheet::addBsdfProperty(std::shared_ptrTungsten::Bsdf,std::string,bool,Tungsten::Scene *,std::function<bool (std::shared_ptrTungsten::Bsdf &)>)' : overloaded member function not found in 'Tungsten::PropertySheet' C:\Users\jpetrovic\Downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.cpp 102 1 editor Error 173 error C2597: illegal reference to non-static member 'Tungsten::PropertySheet::_parent' C:\Users\jpetrovic\Downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.cpp 103 1 editor Error 174 error C2671: 'Tungsten::PropertySheet::addBsdfProperty' : static member functions do not have 'this' pointers C:\Users\jpetrovic\Downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.cpp 103 1 editor Error 175 error C2228: left of '.emplace_back' must have class/struct/union C:\Users\jpetrovic\Downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.cpp 104 1 editor Error 176 error C2511: 'Tungsten::MediumProperty *Tungsten::PropertySheet::addMediumProperty(std::shared_ptrTungsten::Medium,std::string,Tungsten::Scene *,std::function<bool (std::shared_ptrTungsten::Medium &)>)' : overloaded member function not found in 'Tungsten::PropertySheet' C:\Users\jpetrovic\Downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.cpp 110 1 editor Error 177 error C2597: illegal reference to non-static member 'Tungsten::PropertySheet::_parent' C:\Users\jpetrovic\Downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.cpp 111 1 editor Error 178 error C2671: 'Tungsten::PropertySheet::addMediumProperty' : static member functions do not have 'this' pointers C:\Users\jpetrovic\Downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.cpp 111 1 editor Error 179 error C2228: left of '.emplace_back' must have class/struct/union C:\Users\jpetrovic\Downloads\tungsten-master\tungsten-master\src\editor\properties\PropertySheet.cpp 112 1 editor Error 183 error C2864: 'Tungsten::PreviewWindow::Fov' : a static data member with an in-class initializer must have non-volatile const integral type c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\PreviewWindow.hpp 57 1 editor Error 184 error C2864: 'Tungsten::PreviewWindow::Near' : a static data member with an in-class initializer must have non-volatile const integral type c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\PreviewWindow.hpp 58 1 editor Error 185 error C2864: 'Tungsten::PreviewWindow::Far' : a static data member with an in-class initializer must have non-volatile const integral type c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\PreviewWindow.hpp 59 1 editor Error 186 error C2797: 'Tungsten::PreviewWindow::DefaultPriorities': list initialization inside member initializer list or non-static data member initializer is not implemented c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\PreviewWindow.hpp 67 1 editor Error 191 error C2864: 'Tungsten::PreviewWindow::Fov' : a static data member with an in-class initializer must have non-volatile const integral type c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\PreviewWindow.hpp 57 1 editor Error 192 error C2864: 'Tungsten::PreviewWindow::Near' : a static data member with an in-class initializer must have non-volatile const integral type c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\PreviewWindow.hpp 58 1 editor Error 193 error C2864: 'Tungsten::PreviewWindow::Far' : a static data member with an in-class initializer must have non-volatile const integral type c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\PreviewWindow.hpp 59 1 editor Error 194 error C2797: 'Tungsten::PreviewWindow::DefaultPriorities': list initialization inside member initializer list or non-static data member initializer is not implemented c:\users\jpetrovic\downloads\tungsten-master\tungsten-master\src\editor\PreviewWindow.hpp 67 1 editor

    opened by yanko 8
  • error

    error "FMA instruction set not enabled"

    I issue the make command

    ./setup_builds.sh 
    cd build/release
    make
    

    throws out this error

    ...
     from /home/lee/playground/tungsten/src/core/renderer/TraceableScene.hpp:7,
                     from /home/lee/playground/tungsten/src/core/integrators/PathTraceIntegrator.hpp:14,
                     from /home/lee/playground/tungsten/src/core/integrators/PathTraceIntegrator.cpp:1:
    /usr/lib/gcc/x86_64-linux-gnu/4.8/include/fmaintrin.h:32:3: error: #error "FMA instruction set not enabled"
     # error "FMA instruction set not enabled"
       ^
    make[2]: *** [CMakeFiles/core.dir/src/core/integrators/PathTraceIntegrator.cpp.o] Error 1
    make[1]: *** [CMakeFiles/core.dir/all] Error 2
    make: *** [all] Error 2
    
    
    opened by ivanceras 7
  • Can't run editor

    Can't run editor

    All dependencies were satisfied and ompilation completed perfectly.

    -- The C compiler identification is GNU 5.4.0
    -- The CXX compiler identification is GNU 5.4.0
    -- Check for working C compiler: /usr/bin/cc
    -- Check for working C compiler: /usr/bin/cc -- works
    -- Detecting C compiler ABI info
    -- Detecting C compiler ABI info - done
    -- Detecting C compile features
    -- Detecting C compile features - done
    -- Check for working CXX compiler: /usr/bin/c++
    -- Check for working CXX compiler: /usr/bin/c++ -- works
    -- Detecting CXX compiler ABI info
    -- Detecting CXX compiler ABI info - done
    -- Detecting CXX compile features
    -- Detecting CXX compile features - done
    -- Checking for C++11 compiler
    -- Checking for C++11 compiler - available
    -- Detected: Vendor ID 'GenuineIntel'   CPU Family '6'  CPU Model '58'  CPU Flags  'fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm epb tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms xsaveopt dtherm ida arat pln pts'
    -- Detected CPU: ivy-bridge
    -- Performing Test check_cxx_compiler_flag__march_core_avx_i
    -- Performing Test check_cxx_compiler_flag__march_core_avx_i - Success
    -- Performing Test check_cxx_compiler_flag__msse2
    -- Performing Test check_cxx_compiler_flag__msse2 - Success
    -- Performing Test check_cxx_compiler_flag__msse3
    -- Performing Test check_cxx_compiler_flag__msse3 - Success
    -- Looking for pmmintrin.h
    -- Looking for pmmintrin.h - found
    -- Performing Test check_cxx_compiler_flag__mssse3
    -- Performing Test check_cxx_compiler_flag__mssse3 - Success
    -- Looking for tmmintrin.h
    -- Looking for tmmintrin.h - found
    -- Performing Test check_cxx_compiler_flag__msse4_1
    -- Performing Test check_cxx_compiler_flag__msse4_1 - Success
    -- Looking for smmintrin.h
    -- Looking for smmintrin.h - found
    -- Performing Test check_cxx_compiler_flag__msse4_2
    -- Performing Test check_cxx_compiler_flag__msse4_2 - Success
    -- Performing Test check_cxx_compiler_flag__mno_sse4a
    -- Performing Test check_cxx_compiler_flag__mno_sse4a - Success
    -- Performing Test check_cxx_compiler_flag__mno_avx
    -- Performing Test check_cxx_compiler_flag__mno_avx - Success
    -- Performing Test check_cxx_compiler_flag__mno_xop
    -- Performing Test check_cxx_compiler_flag__mno_xop - Success
    -- Performing Test check_cxx_compiler_flag__mno_fma4
    -- Performing Test check_cxx_compiler_flag__mno_fma4 - Success
    -- Performing Test check_cxx_compiler_flag__mno_avx2
    -- Performing Test check_cxx_compiler_flag__mno_avx2 - Success
    -- Compiling with SSE4.2 support
    -- Looking for pthread.h
    -- Looking for pthread.h - found
    -- Looking for pthread_create
    -- Looking for pthread_create - not found
    -- Looking for pthread_create in pthreads
    -- Looking for pthread_create in pthreads - not found
    -- Looking for pthread_create in pthread
    -- Looking for pthread_create in pthread - found
    -- Found Threads: TRUE  
    -- Found ZLIB: /usr/lib/x86_64-linux-gnu/libz.so (found version "1.2.8") 
    -- Found OpenEXR: /usr/include/OpenEXR  
    -- OpenEXR detected. Building with .exr support
    -- Found JPEG: /usr/lib/x86_64-linux-gnu/libjpeg.so  
    -- JPEG library detected.
    -- Found OpenVDB: /usr/include  
    -- Found TBB: /usr/include  
    -- OpenVDB detected. Building with .vdb support
    -- Found OpenGL: /usr/lib/x86_64-linux-gnu/libGL.so  
    -- Building editor
    -- Configuring done
    -- Generating done
    -- Build files have been written to: /home/lin/program/CG/tungsten/build/debug
    

    But when I run editor, it shows this:

    ➜  release git:(master) ./editor 
    QApplication: invalid style override passed, ignoring it.
    ---------------------------
    ---------------------------
    Unable to compile shader:
    0:1(1): error: syntax error, unexpected $end
    
    ➜  release git:(master) 
    

    My OS is Linux Mint 18.1.

    opened by chaosink 5
  • Compile problem JsonObject.hpp

    Compile problem JsonObject.hpp

    I generate the project using cmake 3.4.3, compiling with vc 2013 Professional.

    Problem is when HairBcsdf::toJson tries to create a JsonObject

    Here is the error output HairBcsdf.cpp C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\type_traits(1520): error C2440: 'return' : cannot convert from 'const char [5]' to 'const char (&&)[5]' You cannot bind an lvalue to an rvalue reference C:\Users\stubob95\Documents\tungsten-master\src\core\io/JsonObject.hpp(41) : see reference to function template instantiation 'const char (&&std::move<const char(&)[5]>(_Ty) throw())[5]' being compiled with [ _Ty=const char (&)[5] ] C:\Users\stubob95\Documents\tungsten-master\src\core\io/JsonObject.hpp(30) : see reference to function template instantiation 'void Tungsten::JsonObject::add<0x05,const char(&)[5],const char(&)[12],const float&,const char(&)[10],const float&>(const char (&)[5],T,const char (&)[12],const float &,const char (&)[10],const float &)' being compiled with [ T=const char (&)[5] ] C:\Users\stubob95\Documents\tungsten-master\src\core\bcsdfs\HairBcsdf.cpp(172) : see reference to function template instantiation 'Tungsten::JsonObject::JsonObject<const char(&)[5],const char(&)[5],const char(&)[12],const float&,const char(&)[10],const float&>(rapidjson::Value,Tungsten::JsonObject::Allocator &,const char (&)[5],const char (&)[5],const char (&)[12],const float &,const char (&)[10],const float &)' being compiled

    Am I missing a compiler setting or something?

    opened by stubob95 5
  • VS2013 Issues

    VS2013 Issues

    tungsten\src\thirdparty\embree\geometry\virtual_object_intersector8.h(33): error C2719: 'valid': formal parameter with __declspec(align('32')) won't be aligned
    

    Issue with Embree. Missing a define or a flag somewhere?


    https://github.com/tunabrain/tungsten/blob/facbede6ba6dbdab3c45a59bd4f381df1ae2154e/src/thirdparty/embree/simd/avx.h

    is also an issue because it can't find fmaintrin.h


    2>c:\engineering\opensource\tungsten\src\core\sse\SimdFloat.hpp(248): error C2144: syntax error : 'float' should be preceded by ';'
    2>c:\engineering\opensource\tungsten\src\core\sse\SimdFloat.hpp(248): error C3861: 'alignas': identifier not found
    

    http://msdn.microsoft.com/en-us/library/hh567368.aspx alignas is not implemented in VS according to that

    opened by ddiakopoulos 5
  • Tungsten.exe crash when starting

    Tungsten.exe crash when starting

    Tungsten.exe crash when starting - all time.

    Maybe this help. Exception thrown at 0x00000000005C543E in tungsten.exe: 0xC000001D: Illegal Instruction. Unhandled exception at 0x00000000005C543E in tungsten.exe: 0xC000001D: Illegal Instruction.

    00000000005C543E shrx rax,qword ptr [rcx+10h],rax

    Windows 7 x64

    opened by goofoo 4
  • How to get EXR image.

    How to get EXR image.

    Hi. I am newly using tungsten renderer. When I tested some scenes, I just got png images and option for hdr output file doesn't work. How can I get HDR images after rendering?

    Thanks.

    opened by jaisonoh 3
  • Linker error on Linux with gcc 7.2

    Linker error on Linux with gcc 7.2

    [ 80%] Linking CXX static library libcore.a
    [ 80%] Built target core
    Scanning dependencies of target scenemanip
    Scanning dependencies of target json2xml
    Scanning dependencies of target hdrmanip
    Scanning dependencies of target obj2json
    [ 81%] Building CXX object CMakeFiles/scenemanip.dir/src/scenemanip/scenemanip.cpp.o
    [ 82%] Building CXX object CMakeFiles/hdrmanip.dir/src/hdrmanip/hdrmanip.cpp.o
    [ 82%] Building CXX object CMakeFiles/obj2json.dir/src/obj2json/obj2json.cpp.o
    [ 82%] Building CXX object CMakeFiles/json2xml.dir/src/json2xml/json2xml.cpp.o
    [ 82%] Linking CXX executable obj2json
    libcore.a(GridFactory.cpp.o): In function `openvdb::v4_0_2::math::AffineMap::postRotate(double, openvdb::v4_0_2::math::Axis) const':
    GridFactory.cpp:(.text._ZNK7openvdb6v4_0_24math9AffineMap10postRotateEdNS1_4AxisE[_ZNK7openvdb6v4_0_24math9AffineMap10postRotateEdNS1_4AxisE]+0x7e): undefined reference to `openvdb::v4_0_2::math::simplify(std::shared_ptr<openvdb::v4_0_2::math::AffineMap>)'
    libcore.a(GridFactory.cpp.o): In function `openvdb::v4_0_2::math::ScaleTranslateMap::postRotate(double, openvdb::v4_0_2::math::Axis) const':
    GridFactory.cpp:(.text._ZNK7openvdb6v4_0_24math17ScaleTranslateMap10postRotateEdNS1_4AxisE[_ZNK7openvdb6v4_0_24math17ScaleTranslateMap10postRotateEdNS1_4AxisE]+0x7e): undefined reference to `openvdb::v4_0_2::math::simplify(std::shared_ptr<openvdb::v4_0_2::math::AffineMap>)'
    libcore.a(GridFactory.cpp.o): In function `openvdb::v4_0_2::math::TranslationMap::postRotate(double, openvdb::v4_0_2::math::Axis) const':
    GridFactory.cpp:(.text._ZNK7openvdb6v4_0_24math14TranslationMap10postRotateEdNS1_4AxisE[_ZNK7openvdb6v4_0_24math14TranslationMap10postRotateEdNS1_4AxisE]+0x7e): undefined reference to `openvdb::v4_0_2::math::simplify(std::shared_ptr<openvdb::v4_0_2::math::AffineMap>)'
    libcore.a(GridFactory.cpp.o): In function `openvdb::v4_0_2::math::ScaleMap::postRotate(double, openvdb::v4_0_2::math::Axis) const':
    GridFactory.cpp:(.text._ZNK7openvdb6v4_0_24math8ScaleMap10postRotateEdNS1_4AxisE[_ZNK7openvdb6v4_0_24math8ScaleMap10postRotateEdNS1_4AxisE]+0x7e): undefined reference to `openvdb::v4_0_2::math::simplify(std::shared_ptr<openvdb::v4_0_2::math::AffineMap>)'
    libcore.a(GridFactory.cpp.o): In function `openvdb::v4_0_2::math::AffineMap::preShear(double, openvdb::v4_0_2::math::Axis, openvdb::v4_0_2::math::Axis) const':
    GridFactory.cpp:(.text._ZNK7openvdb6v4_0_24math9AffineMap8preShearEdNS1_4AxisES3_[_ZNK7openvdb6v4_0_24math9AffineMap8preShearEdNS1_4AxisES3_]+0xce): undefined reference to `openvdb::v4_0_2::math::simplify(std::shared_ptr<openvdb::v4_0_2::math::AffineMap>)'
    libcore.a(GridFactory.cpp.o):GridFactory.cpp:(.text._ZNK7openvdb6v4_0_24math17ScaleTranslateMap8preShearEdNS1_4AxisES3_[_ZNK7openvdb6v4_0_24math17ScaleTranslateMap8preShearEdNS1_4AxisES3_]+0xce): more undefined references to `openvdb::v4_0_2::math::simplify(std::shared_ptr<openvdb::v4_0_2::math::AffineMap>)' follow
    libcore.a(VdbGrid.cpp.o): In function `openvdb::v4_0_2::GridBase::GridBase(openvdb::v4_0_2::GridBase const&)':
    VdbGrid.cpp:(.text._ZN7openvdb6v4_0_28GridBaseC2ERKS1_[_ZN7openvdb6v4_0_28GridBaseC5ERKS1_]+0x57): undefined reference to `openvdb::v4_0_2::math::Transform::Transform(std::shared_ptr<openvdb::v4_0_2::math::MapBase> const&)'
    libcore.a(VdbGrid.cpp.o): In function `openvdb::v4_0_2::tree::LeafBuffer<openvdb::v4_0_2::math::Vec2<float>, 3u>::doLoad() const':
    VdbGrid.cpp:(.text._ZNK7openvdb6v4_0_24tree10LeafBufferINS0_4math4Vec2IfEELj3EE6doLoadEv[_ZNK7openvdb6v4_0_24tree10LeafBufferINS0_4math4Vec2IfEELj3EE6doLoadEv]+0x13c): undefined reference to `openvdb::v4_0_2::io::setStreamMetadataPtr(std::ios_base&, std::shared_ptr<openvdb::v4_0_2::io::StreamMetadata>&, bool)'
    libcore.a(VdbGrid.cpp.o): In function `openvdb::v4_0_2::tree::LeafBuffer<float, 3u>::doLoad() const':
    VdbGrid.cpp:(.text._ZNK7openvdb6v4_0_24tree10LeafBufferIfLj3EE6doLoadEv[_ZNK7openvdb6v4_0_24tree10LeafBufferIfLj3EE6doLoadEv]+0x13c): undefined reference to `openvdb::v4_0_2::io::setStreamMetadataPtr(std::ios_base&, std::shared_ptr<openvdb::v4_0_2::io::StreamMetadata>&, bool)'
    collect2: error: ld returned 1 exit status
    make[2]: *** [CMakeFiles/obj2json.dir/build.make:111: obj2json] Error 1
    make[1]: *** [CMakeFiles/Makefile2:197: CMakeFiles/obj2json.dir/all] Error 2
    make[1]: *** Waiting for unfinished jobs....
    [ 82%] Linking CXX executable hdrmanip
    [ 82%] Built target hdrmanip
    [ 82%] Linking CXX executable scenemanip
    libcore.a(GridFactory.cpp.o): In function `openvdb::v4_0_2::math::AffineMap::postRotate(double, openvdb::v4_0_2::math::Axis) const':
    GridFactory.cpp:(.text._ZNK7openvdb6v4_0_24math9AffineMap10postRotateEdNS1_4AxisE[_ZNK7openvdb6v4_0_24math9AffineMap10postRotateEdNS1_4AxisE]+0x7e): undefined reference to `openvdb::v4_0_2::math::simplify(std::shared_ptr<openvdb::v4_0_2::math::AffineMap>)'
    libcore.a(GridFactory.cpp.o): In function `openvdb::v4_0_2::math::ScaleTranslateMap::postRotate(double, openvdb::v4_0_2::math::Axis) const':
    GridFactory.cpp:(.text._ZNK7openvdb6v4_0_24math17ScaleTranslateMap10postRotateEdNS1_4AxisE[_ZNK7openvdb6v4_0_24math17ScaleTranslateMap10postRotateEdNS1_4AxisE]+0x7e): undefined reference to `openvdb::v4_0_2::math::simplify(std::shared_ptr<openvdb::v4_0_2::math::AffineMap>)'
    libcore.a(GridFactory.cpp.o): In function `openvdb::v4_0_2::math::TranslationMap::postRotate(double, openvdb::v4_0_2::math::Axis) const':
    GridFactory.cpp:(.text._ZNK7openvdb6v4_0_24math14TranslationMap10postRotateEdNS1_4AxisE[_ZNK7openvdb6v4_0_24math14TranslationMap10postRotateEdNS1_4AxisE]+0x7e): undefined reference to `openvdb::v4_0_2::math::simplify(std::shared_ptr<openvdb::v4_0_2::math::AffineMap>)'
    libcore.a(GridFactory.cpp.o): In function `openvdb::v4_0_2::math::ScaleMap::postRotate(double, openvdb::v4_0_2::math::Axis) const':
    GridFactory.cpp:(.text._ZNK7openvdb6v4_0_24math8ScaleMap10postRotateEdNS1_4AxisE[_ZNK7openvdb6v4_0_24math8ScaleMap10postRotateEdNS1_4AxisE]+0x7e): undefined reference to `openvdb::v4_0_2::math::simplify(std::shared_ptr<openvdb::v4_0_2::math::AffineMap>)'
    libcore.a(GridFactory.cpp.o): In function `openvdb::v4_0_2::math::AffineMap::preShear(double, openvdb::v4_0_2::math::Axis, openvdb::v4_0_2::math::Axis) const':
    GridFactory.cpp:(.text._ZNK7openvdb6v4_0_24math9AffineMap8preShearEdNS1_4AxisES3_[_ZNK7openvdb6v4_0_24math9AffineMap8preShearEdNS1_4AxisES3_]+0xce): undefined reference to `openvdb::v4_0_2::math::simplify(std::shared_ptr<openvdb::v4_0_2::math::AffineMap>)'
    libcore.a(GridFactory.cpp.o):GridFactory.cpp:(.text._ZNK7openvdb6v4_0_24math17ScaleTranslateMap8preShearEdNS1_4AxisES3_[_ZNK7openvdb6v4_0_24math17ScaleTranslateMap8preShearEdNS1_4AxisES3_]+0xce): more undefined references to `openvdb::v4_0_2::math::simplify(std::shared_ptr<openvdb::v4_0_2::math::AffineMap>)' follow
    libcore.a(VdbGrid.cpp.o): In function `openvdb::v4_0_2::GridBase::GridBase(openvdb::v4_0_2::GridBase const&)':
    VdbGrid.cpp:(.text._ZN7openvdb6v4_0_28GridBaseC2ERKS1_[_ZN7openvdb6v4_0_28GridBaseC5ERKS1_]+0x57): undefined reference to `openvdb::v4_0_2::math::Transform::Transform(std::shared_ptr<openvdb::v4_0_2::math::MapBase> const&)'
    libcore.a(VdbGrid.cpp.o): In function `openvdb::v4_0_2::tree::LeafBuffer<openvdb::v4_0_2::math::Vec2<float>, 3u>::doLoad() const':
    VdbGrid.cpp:(.text._ZNK7openvdb6v4_0_24tree10LeafBufferINS0_4math4Vec2IfEELj3EE6doLoadEv[_ZNK7openvdb6v4_0_24tree10LeafBufferINS0_4math4Vec2IfEELj3EE6doLoadEv]+0x13c): undefined reference to `openvdb::v4_0_2::io::setStreamMetadataPtr(std::ios_base&, std::shared_ptr<openvdb::v4_0_2::io::StreamMetadata>&, bool)'
    libcore.a(VdbGrid.cpp.o): In function `openvdb::v4_0_2::tree::LeafBuffer<float, 3u>::doLoad() const':
    VdbGrid.cpp:(.text._ZNK7openvdb6v4_0_24tree10LeafBufferIfLj3EE6doLoadEv[_ZNK7openvdb6v4_0_24tree10LeafBufferIfLj3EE6doLoadEv]+0x13c): undefined reference to `openvdb::v4_0_2::io::setStreamMetadataPtr(std::ios_base&, std::shared_ptr<openvdb::v4_0_2::io::StreamMetadata>&, bool)'
    collect2: error: ld returned 1 exit status
    make[2]: *** [CMakeFiles/scenemanip.dir/build.make:111: scenemanip] Error 1
    make[1]: *** [CMakeFiles/Makefile2:277: CMakeFiles/scenemanip.dir/all] Error 2
    [ 83%] Linking CXX executable json2xml
    libcore.a(GridFactory.cpp.o): In function `openvdb::v4_0_2::math::AffineMap::postRotate(double, openvdb::v4_0_2::math::Axis) const':
    GridFactory.cpp:(.text._ZNK7openvdb6v4_0_24math9AffineMap10postRotateEdNS1_4AxisE[_ZNK7openvdb6v4_0_24math9AffineMap10postRotateEdNS1_4AxisE]+0x7e): undefined reference to `openvdb::v4_0_2::math::simplify(std::shared_ptr<openvdb::v4_0_2::math::AffineMap>)'
    libcore.a(GridFactory.cpp.o): In function `openvdb::v4_0_2::math::ScaleTranslateMap::postRotate(double, openvdb::v4_0_2::math::Axis) const':
    GridFactory.cpp:(.text._ZNK7openvdb6v4_0_24math17ScaleTranslateMap10postRotateEdNS1_4AxisE[_ZNK7openvdb6v4_0_24math17ScaleTranslateMap10postRotateEdNS1_4AxisE]+0x7e): undefined reference to `openvdb::v4_0_2::math::simplify(std::shared_ptr<openvdb::v4_0_2::math::AffineMap>)'
    libcore.a(GridFactory.cpp.o): In function `openvdb::v4_0_2::math::TranslationMap::postRotate(double, openvdb::v4_0_2::math::Axis) const':
    GridFactory.cpp:(.text._ZNK7openvdb6v4_0_24math14TranslationMap10postRotateEdNS1_4AxisE[_ZNK7openvdb6v4_0_24math14TranslationMap10postRotateEdNS1_4AxisE]+0x7e): undefined reference to `openvdb::v4_0_2::math::simplify(std::shared_ptr<openvdb::v4_0_2::math::AffineMap>)'
    libcore.a(GridFactory.cpp.o): In function `openvdb::v4_0_2::math::ScaleMap::postRotate(double, openvdb::v4_0_2::math::Axis) const':
    GridFactory.cpp:(.text._ZNK7openvdb6v4_0_24math8ScaleMap10postRotateEdNS1_4AxisE[_ZNK7openvdb6v4_0_24math8ScaleMap10postRotateEdNS1_4AxisE]+0x7e): undefined reference to `openvdb::v4_0_2::math::simplify(std::shared_ptr<openvdb::v4_0_2::math::AffineMap>)'
    libcore.a(GridFactory.cpp.o): In function `openvdb::v4_0_2::math::AffineMap::preShear(double, openvdb::v4_0_2::math::Axis, openvdb::v4_0_2::math::Axis) const':
    GridFactory.cpp:(.text._ZNK7openvdb6v4_0_24math9AffineMap8preShearEdNS1_4AxisES3_[_ZNK7openvdb6v4_0_24math9AffineMap8preShearEdNS1_4AxisES3_]+0xce): undefined reference to `openvdb::v4_0_2::math::simplify(std::shared_ptr<openvdb::v4_0_2::math::AffineMap>)'
    libcore.a(GridFactory.cpp.o):GridFactory.cpp:(.text._ZNK7openvdb6v4_0_24math17ScaleTranslateMap8preShearEdNS1_4AxisES3_[_ZNK7openvdb6v4_0_24math17ScaleTranslateMap8preShearEdNS1_4AxisES3_]+0xce): more undefined references to `openvdb::v4_0_2::math::simplify(std::shared_ptr<openvdb::v4_0_2::math::AffineMap>)' follow
    libcore.a(VdbGrid.cpp.o): In function `openvdb::v4_0_2::GridBase::GridBase(openvdb::v4_0_2::GridBase const&)':
    VdbGrid.cpp:(.text._ZN7openvdb6v4_0_28GridBaseC2ERKS1_[_ZN7openvdb6v4_0_28GridBaseC5ERKS1_]+0x57): undefined reference to `openvdb::v4_0_2::math::Transform::Transform(std::shared_ptr<openvdb::v4_0_2::math::MapBase> const&)'
    libcore.a(VdbGrid.cpp.o): In function `openvdb::v4_0_2::tree::LeafBuffer<openvdb::v4_0_2::math::Vec2<float>, 3u>::doLoad() const':
    VdbGrid.cpp:(.text._ZNK7openvdb6v4_0_24tree10LeafBufferINS0_4math4Vec2IfEELj3EE6doLoadEv[_ZNK7openvdb6v4_0_24tree10LeafBufferINS0_4math4Vec2IfEELj3EE6doLoadEv]+0x13c): undefined reference to `openvdb::v4_0_2::io::setStreamMetadataPtr(std::ios_base&, std::shared_ptr<openvdb::v4_0_2::io::StreamMetadata>&, bool)'
    libcore.a(VdbGrid.cpp.o): In function `openvdb::v4_0_2::tree::LeafBuffer<float, 3u>::doLoad() const':
    VdbGrid.cpp:(.text._ZNK7openvdb6v4_0_24tree10LeafBufferIfLj3EE6doLoadEv[_ZNK7openvdb6v4_0_24tree10LeafBufferIfLj3EE6doLoadEv]+0x13c): undefined reference to `openvdb::v4_0_2::io::setStreamMetadataPtr(std::ios_base&, std::shared_ptr<openvdb::v4_0_2::io::StreamMetadata>&, bool)'
    collect2: error: ld returned 1 exit status
    make[2]: *** [CMakeFiles/json2xml.dir/build.make:111: json2xml] Error 1
    make[1]: *** [CMakeFiles/Makefile2:74: CMakeFiles/json2xml.dir/all] Error 2
    make: *** [Makefile:152: all] Error 2
    

    openvdb is installed:

    $ pacman -Ql openvdb | grep libopenvdb.so
    openvdb /usr/lib/libopenvdb.so
    openvdb /usr/lib/libopenvdb.so.4.0
    openvdb /usr/lib/libopenvdb.so.4.0.2
    
    opened by CounterPillow 3
  • the default far plane, near plane, and clip coordinates

    the default far plane, near plane, and clip coordinates

    Hello! I'm still learning computer graphics. I want to try reprojection in the TAA algorithm:

    where p is the pixel's homogeneous coordinate:

    Therefore, I need to get the view matrix and projection matrix. The up, look at, and camera position can be found in JSON, but I still don't know the far plane and near plane to compute the projection matrix. I noticed that the far plane and near plane in the PreviewWindow.hpp are 100 and 0.01. Are the values the same inside the renderer?

    Also, I'm not sure about the component z of the coordinate. I've made tungsten outputted depth buffers, but I don't know how to normalize them. Is the range of z (-1, 1), or (0, 1)? I guess z is somewhat like depth_buffer / (far - near). Am I correct?

    Thanks.

    opened by IwakuraRein 2
  • Radiance scaling due to solid angle compression for light transmission

    Radiance scaling due to solid angle compression for light transmission

    It seems that Tungsten doesn't account for this fact.

    Mitsuba reference: https://github.com/mitsuba-renderer/mitsuba/blob/master/src/bsdfs/dielectric.cpp#L246

    opened by chaosink 2
  • Implementation of cylinder primitive?

    Implementation of cylinder primitive?

    Hi Mr. Bitterli,

    I was introduced to your renderer by a friend, and was impressed by the result and performance. As I'm trying to render some molecular pictures, a "cylinder" geometry would be very helpful for showing chemical bonds. Without any knowledge of computer graphics, I read the implementation of other primitives in src/core/primitives and tried to implement the cylinder primitive by mimicking them. My first draft was able to compile, but the cylinder is not showing up in the rendered results, except some reflections on a sphere. I have very little understanding of how the rendering works, so many of the functions may be done terribly wrong. If you have a little time, could you please take a look at it? (https://github.com/yudongqiu/tungsten/blob/master/src/core/primitives/Cylinder.cpp)

    Any hint on my mistakes, or references that could help me understanding it, would be greatly appreciated. It would be also great that if you think writing it from scratch is better than looking at mine. 😄 Thanks a lot!

    Best,

    Yudong Qiu

    opened by yudongqiu 2
  • Fix nearest-neighbor interpolation of cached reconstruction filter

    Fix nearest-neighbor interpolation of cached reconstruction filter

    Hi Benedikt!

    I was implementing film and reconstruction functionality in my renderer and I learned a lot from your implementation. I think that I stumbled upon a very tiny problem in your implementation that can have a noticeable effect on the result however.

    When you retrieve the cached filter value, you effectively floor the continuous array index (via int cast) rather than rounding it to the closest integer. This will pick the "wrong" value (i.e. not the nearest neighbor) about 50% of the time as shown in the illustration below.

    Since we are dealing with positive values, shifting the continuous index to the left by adding 0.5 before flooring is enough to achieve rounding. Here's a comparison between direct filter evaluation as reference, floor and round (using the Lanczos filter):

    diff

    I removed the normalization of _filter to achieve the same intended filter for these comparisons, since direct evaluation is not normalized.

    opened by linusmossberg 0
  • About customizing ray directions

    About customizing ray directions

    Hi Benedit.

    I know the path tracing algorithm demands the ωo generated randomly, I want to customize the ωo of the first bounce of each ray though.

    I've tried to fathom tungsten's core codes but can't get everything clear, for I just started learning pbrt. I've made PathTracer.cpp load an exr file describing the ωo of each pixel, but I have no idea where I can assign them. I guess the random generation happens in the class PathSampleGenerator, and handleSurface(), estimateDirect(), sampleDirect(), and chooseLight() in the TraceBase.cpp need modifications. Could you teach me a bit?

    Thanks. 😊

    opened by IwakuraRein 0
  • Cannot Compile Master on Windows

    Cannot Compile Master on Windows

    I'm unable to compile master commit 88ea02044dbaf20472a8173b6752460b50c096d8 on Windows as neither OpenVDB nor OpenEXR are being correctly linked to the executable.

    I am using a vcpkg environment with boost, tbb and openexr installed and have compiled openvdb myself. The paths are correctly set in cmake, but I run into unresolved external symbols and could not find header [insert an openexr header] type errors.

    I'm not sure how to debug this, so if you have an already compiled version that I can use that'd be great. If not, I'd be grateful for any pointers as to what I should investigate first.

    opened by Microno95 0
  • Editor randomly crashes on macOS

    Editor randomly crashes on macOS

    The editor will crash sometimes when I click on objects, names of primitives or drag the vertical split line. It's not 100% happening, but It will happen within a few clicks, usually upon draging the split line.

    I've tried both on release version and debug version of v0.2.2.

    Error message:

    Segmentation fault: 11
    

    backtrace:

    * thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)
        frame #0: 0x00007fff45ae8483 CoreFoundation`_CFRelease + 1076
        frame #1: 0x00007fff459b8504 CoreFoundation`__CFBasicHashDrain + 359
        frame #2: 0x00007fff45ae813e CoreFoundation`_CFRelease + 239
        frame #3: 0x00007fff484ba5d5 IOSurface`IOSurfaceClientRelease + 219
        frame #4: 0x00007fff484ba4b0 IOSurface`-[IOSurface dealloc] + 44
        frame #5: 0x00007fff509a05bc QuartzCore`CA::release_objects(X::List<void const*>*) + 26
        frame #6: 0x00007fff509982d1 QuartzCore`CA::Transaction::commit() + 1161
        frame #7: 0x00007fff43039305 AppKit`__65+[CATransaction(NSCATransaction) NS_setFlushesWithDisplayRefresh]_block_invoke + 274
        frame #8: 0x00007fff45a429cd CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 23
        frame #9: 0x00007fff45a42902 CoreFoundation`__CFRunLoopDoObservers + 452
        frame #10: 0x00007fff459e4429 CoreFoundation`__CFRunLoopRun + 1166
        frame #11: 0x00007fff459e3d48 CoreFoundation`CFRunLoopRunSpecific + 463
        frame #12: 0x00007fff44c7aab5 HIToolbox`RunCurrentEventLoopInMode + 293
        frame #13: 0x00007fff44c7a6f4 HIToolbox`ReceiveNextEventCommon + 371
        frame #14: 0x00007fff44c7a568 HIToolbox`_BlockUntilNextEventMatchingListInModeWithFilter + 64
        frame #15: 0x00007fff42f35363 AppKit`_DPSNextEvent + 997
        frame #16: 0x00007fff42f34102 AppKit`-[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 1362
        frame #17: 0x00007fff42f2e165 AppKit`-[NSApplication run] + 699
        frame #18: 0x000000011241fc85 libqcocoa.dylib`___lldb_unnamed_symbol647$$libqcocoa.dylib + 2757
        frame #19: 0x0000000104d2336f QtCore`QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 431
        frame #20: 0x0000000104d28582 QtCore`QCoreApplication::exec() + 130
      * frame #21: 0x0000000100067fef editor`main(argc=1, argv=0x00007ffeefbff698) at main.cpp:56:16
        frame #22: 0x00007fff72c25ed9 libdyld.dylib`start + 1
        frame #23: 0x00007fff72c25ed9 libdyld.dylib`start + 1
    

    Environment

    $ /Library/Developer/CommandLineTools/usr/bin/cc --version
    Apple LLVM version 10.0.1 (clang-1001.0.46.4)
    Target: x86_64-apple-darwin18.2.0
    Thread model: posix
    InstalledDir: /Library/Developer/CommandLineTools/usr/bin
    
    opened by 111116 2
  • About “seed” parameter in script tungsten.exe

    About “seed” parameter in script tungsten.exe

    Hi, What is the role of ‘seed’ parameter in tungsten.exe script?Is it used to control the texture of the material or to controlthe position of randomly generated light(spp)?

    opened by 1003581 2
  • Debug/core.lib

    Debug/core.lib

    Hi! I'm trying to build the project with Visual Studio 2013 and a recent CMake version but I have some errors. The first one is that the function in ImageIO.cpp line 457 is not recognised: "Attempting to reference a deleted function". Then I have 7 similar errors, all related to Debug/core.lib saying that the file doesn't exist for hdrmanip, obj2json, scenemanip, json2xml, tungsten, tungsten_server and editor projects. How can I solve this? Many thanks in advance

    opened by HitchLor 1
Releases(v0.2.2)
Owner
Benedikt Bitterli
Benedikt Bitterli
physically based path tracer on gpu

GPUPathtracer physically based path tracer on gpu 特点 积分器(ambient occlusion, path tracing, light tracing, volumetric path tracing, bidirectional path t

FuHong 44 Dec 11, 2022
A fast, distributed, high performance gradient boosting (GBT, GBDT, GBRT, GBM or MART) framework based on decision tree algorithms, used for ranking, classification and many other machine learning tasks.

Light Gradient Boosting Machine LightGBM is a gradient boosting framework that uses tree based learning algorithms. It is designed to be distributed a

Microsoft 14.5k Jan 5, 2023
An Out-of-the-Box TensorRT-based Framework for High Performance Inference with C++/Python Support

An Out-of-the-Box TensorRT-based Framework for High Performance Inference with C++/Python Support

手写AI 1.5k Jan 5, 2023
The dgSPARSE Library (Deep Graph Sparse Library) is a high performance library for sparse kernel acceleration on GPUs based on CUDA.

dgSPARSE Library Introdution The dgSPARSE Library (Deep Graph Sparse Library) is a high performance library for sparse kernel acceleration on GPUs bas

dgSPARSE 59 Dec 5, 2022
Pipy is a tiny, high performance, highly stable, programmable proxy.

Pipy Pipy is a tiny, high performance, highly stable, programmable proxy. Written in C++, built on top of Asio asynchronous I/O library, Pipy is extre

null 539 Dec 28, 2022
A fast, scalable, high performance Gradient Boosting on Decision Trees library, used for ranking, classification, regression and other machine learning tasks for Python, R, Java, C++. Supports computation on CPU and GPU.

Website | Documentation | Tutorials | Installation | Release Notes CatBoost is a machine learning method based on gradient boosting over decision tree

CatBoost 6.9k Dec 31, 2022
High performance, easy-to-use, and scalable machine learning (ML) package, including linear model (LR), factorization machines (FM), and field-aware factorization machines (FFM) for Python and CLI interface.

What is xLearn? xLearn is a high performance, easy-to-use, and scalable machine learning package that contains linear model (LR), factorization machin

Chao Ma 3k Dec 23, 2022
Forward - A library for high performance deep learning inference on NVIDIA GPUs

a library for high performance deep learning inference on NVIDIA GPUs.

Tencent 123 Mar 17, 2021
A library for high performance deep learning inference on NVIDIA GPUs.

Forward - A library for high performance deep learning inference on NVIDIA GPUs Forward - A library for high performance deep learning inference on NV

Tencent 509 Dec 17, 2022
ONNX Runtime: cross-platform, high performance ML inferencing and training accelerator

ONNX Runtime is a cross-platform inference and training machine-learning accelerator compatible with deep learning frameworks, PyTorch and TensorFlow/Keras, as well as classical machine learning libraries such as scikit-learn, and more.

Microsoft 8k Jan 2, 2023
Edge ML Library - High-performance Compute Library for On-device Machine Learning Inference

Edge ML Library (EMLL) offers optimized basic routines like general matrix multiplications (GEMM) and quantizations, to speed up machine learning (ML) inference on ARM-based devices. EMLL supports fp32, fp16 and int8 data types. EMLL accelerates on-device NMT, ASR and OCR engines of Youdao, Inc.

NetEase Youdao 179 Dec 20, 2022
LightSeq: A High Performance Library for Sequence Processing and Generation

LightSeq is a high performance training and inference library for sequence processing and generation implemented in CUDA. It enables highly efficient computation of modern NLP models such as BERT, GPT, Transformer, etc. It is therefore best useful for Machine Translation, Text Generation, Dialog, Language Modelling, Sentiment Analysis, and other related tasks with sequence data.

Bytedance Inc. 2.5k Jan 3, 2023
A flexible, high-performance serving system for machine learning models

XGBoost Serving This is a fork of TensorFlow Serving, extended with the support for XGBoost, alphaFM and alphaFM_softmax frameworks. For more informat

iQIYI 128 Nov 18, 2022
PPLNN is a high-performance deep-learning inference engine for efficient AI inferencing.

PPLNN, which is short for "PPLNN is a Primitive Library for Neural Network", is a high-performance deep-learning inference engine for efficient AI inferencing.

null 939 Dec 29, 2022
DeepRTS is a high-performance Real-TIme strategy game for Reinforcement Learning research written in C++

DeepRTS is a high-performance Real-TIme strategy game for Reinforcement Learning research. It is written in C++ for performance, but provides an python interface to better interface with machine-learning toolkits. Deep RTS can process the game with over 6 000 000 steps per second and 2 000 000 steps when rendering graphics. In comparison to other solutions, such as StarCraft, this is over 15 000% faster simulation time running on Intel i7-8700k with Nvidia RTX 2080 TI.

Centre for Artificial Intelligence Research (CAIR) 156 Dec 19, 2022
ncnn is a high-performance neural network inference framework optimized for the mobile platform

ncnn ncnn is a high-performance neural network inference computing framework optimized for mobile platforms. ncnn is deeply considerate about deployme

Tencent 16.2k Jan 5, 2023
C++ high-performance gym environment framework

gym_cpp author: yeting email : [email protected] C++ high-performance gym environment framework Dependence apt install python3 python3-dev cmake pip3

Ye Ting 1 Dec 26, 2021
Beringei is a high performance, in-memory storage engine for time series data.

** THIS REPO HAS BEEN ARCHIVED AND IS NO LONGER BEING ACTIVELY MAINTAINED ** Beringei A high performance, in memory time series storage engine In the

Meta Archive 3.1k Dec 24, 2022
Adorad - Fast, Expressive, & High-Performance Programming Language for those who dare

The Adorad Language Adorad | Documentation | Contributing | Compiler design Key Features of Adorad Simplicity: the language can be learned in less tha

Adorad 54 Dec 26, 2022