LuxCore: new features

Discussion related to the implementation of new features & algorithms to the Core Engine.

Moderators: Dade, jromang, tomb, zcott, coordinators

Re: LuxCore: new features

Postby jensverwiebe » Sat Oct 22, 2016 10:39 am

Dade wrote:LuxCore film file (and, in general, LuxCore serialization process) is now portable across multiple platforms. This is an important step for some future feature (like resume rendering, etc.).


I struggle atm. with compile when using clang ( more strict ):

Code: Select all
[ 20%] Building CXX object src/slg/CMakeFiles/smallluxgpu.dir/renderstate.cpp.o
/media/Workdata3/Development/Lux_dev/luxrays/src/slg/renderstate.cpp:81:13: error: invalid operands to binary expression
      ('eos::polymorphic_portable_oarchive' (aka 'polymorphic_oarchive_route<eos::portable_oarchive>') and 'slg::RenderState *')
        outArchive << this;
        ~~~~~~~~~~ ^  ~~~~
/media/Workdata3/Development/Lux_dev/linux_deps/include/boost/archive/detail/polymorphic_oarchive_route.hpp:170:28: note:
      candidate function [with T = slg::RenderState *] not viable: no known conversion from 'slg::RenderState *' to
      'slg::RenderState *&' for 1st argument
    polymorphic_oarchive & operator<<(T & t){
                           ^
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/bits/basic_string.h:2753:5: note: candidate template ignored: could
      not match 'basic_ostream' against 'polymorphic_oarchive_route'
    operator<<(basic_ostream<_CharT, _Traits>& __os,
    ^
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/bits/shared_ptr.h:66:5: note: candidate template ignored: could not
      match 'basic_ostream' against 'polymorphic_oarchive_route'
    operator<<(std::basic_ostream<_Ch, _Tr>& __os,
    ^
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/ostream:471:5: note: candidate template ignored: could not match
      'basic_ostream' against 'polymorphic_oarchive_route'
    operator<<(basic_ostream<_CharT, _Traits>& __out, _CharT __c)
    ^
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/ostream:476:5: note: candidate template ignored: could not match
      'basic_ostream' against 'polymorphic_oarchive_route'
    operator<<(basic_ostream<_CharT, _Traits>& __out, char __c)
    ^
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/ostream:482:5: note: candidate template ignored: could not match
      'basic_ostream' against 'polymorphic_oarchive_route'
    operator<<(basic_ostream<char, _Traits>& __out, char __c)
    ^
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/ostream:488:5: note: candidate template ignored: could not match
      'basic_ostream' against 'polymorphic_oarchive_route'
    operator<<(basic_ostream<char, _Traits>& __out, signed char __c)
    ^
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/ostream:493:5: note: candidate template ignored: could not match
      'basic_ostream' against 'polymorphic_oarchive_route'
    operator<<(basic_ostream<char, _Traits>& __out, unsigned char __c)
    ^
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/ostream:513:5: note: candidate template ignored: could not match
      'basic_ostream' against 'polymorphic_oarchive_route'
    operator<<(basic_ostream<_CharT, _Traits>& __out, const _CharT* __s)
    ^
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/ostream:530:5: note: candidate template ignored: could not match
      'basic_ostream' against 'polymorphic_oarchive_route'
    operator<<(basic_ostream<char, _Traits>& __out, const char* __s)
    ^
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/ostream:543:5: note: candidate template ignored: could not match
      'basic_ostream' against 'polymorphic_oarchive_route'
    operator<<(basic_ostream<char, _Traits>& __out, const signed char* __s)
    ^
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/ostream:548:5: note: candidate template ignored: could not match
      'basic_ostream' against 'polymorphic_oarchive_route'
    operator<<(basic_ostream<char, _Traits>& __out, const unsigned char* __s)
    ^
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/ostream:602:5: note: candidate template ignored: could not match
      'basic_ostream' against 'polymorphic_oarchive_route'
    operator<<(basic_ostream<_CharT, _Traits>&& __os, const _Tp& __x)
    ^
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/bits/ostream.tcc:321:5: note: candidate template ignored: could not
      match 'basic_ostream' against 'polymorphic_oarchive_route'
    operator<<(basic_ostream<_CharT, _Traits>& __out, const char* __s)
    ^
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/bits/random.h:1277:5: note: candidate template ignored: could not
      match 'basic_ostream' against 'polymorphic_oarchive_route'
    operator<<(std::basic_ostream<_CharT, _Traits>& __os,
    ^
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/bits/random.tcc:156:5: note: candidate template ignored: could not
      match 'basic_ostream' against 'polymorphic_oarchive_route'
    operator<<(std::basic_ostream<_CharT, _Traits>& __os,
    ^
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/bits/random.tcc:477:5: note: candidate template ignored: could not
      match 'basic_ostream' against 'polymorphic_oarchive_route'
    operator<<(std::basic_ostream<_CharT, _Traits>& __os,
    ^
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/bits/random.tcc:632:5: note: candidate template ignored: could not
      match 'basic_ostream' against 'polymorphic_oarchive_route'
    operator<<(std::basic_ostream<_CharT, _Traits>& __os,
    ^
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/bits/random.tcc:702:5: note: candidate template ignored: could not
      match 'basic_ostream' against 'polymorphic_oarchive_route'
    operator<<(std::basic_ostream<_CharT, _Traits>& __os,
    ^
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/bits/random.tcc:831:5: note: candidate template ignored: could not
      match 'basic_ostream' against 'polymorphic_oarchive_route'
    operator<<(std::basic_ostream<_CharT, _Traits>& __os,
    ^
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/bits/random.tcc:1029:5: note: candidate template ignored: could not
      match 'basic_ostream' against 'polymorphic_oarchive_route'
    operator<<(std::basic_ostream<_CharT, _Traits>& __os,
    ^
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/bits/random.tcc:1088:5: note: candidate template ignored: could not
      match 'basic_ostream' against 'polymorphic_oarchive_route'
    operator<<(std::basic_ostream<_CharT, _Traits>& __os,
    ^
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/bits/random.tcc:1150:5: note: candidate template ignored: could not
      match 'basic_ostream' against 'polymorphic_oarchive_route'
    operator<<(std::basic_ostream<_CharT, _Traits>& __os,
    ^
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/bits/random.tcc:1232:5: note: candidate template ignored: could not
      match 'basic_ostream' against 'polymorphic_oarchive_route'
    operator<<(std::basic_ostream<_CharT, _Traits>& __os,
    ^
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/bits/random.tcc:1347:5: note: candidate template ignored: could not
      match 'basic_ostream' against 'polymorphic_oarchive_route'
    operator<<(std::basic_ostream<_CharT, _Traits>& __os,
    ^
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/bits/random.tcc:1552:5: note: candidate template ignored: could not
      match 'basic_ostream' against 'polymorphic_oarchive_route'
    operator<<(std::basic_ostream<_CharT, _Traits>& __os,
    ^
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/bits/random.tcc:1819:5: note: candidate template ignored: could not
      match 'basic_ostream' against 'polymorphic_oarchive_route'
    operator<<(std::basic_ostream<_CharT, _Traits>& __os,
    ^
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/bits/random.tcc:1883:5: note: candidate template ignored: could not
      match 'basic_ostream' against 'polymorphic_oarchive_route'
    operator<<(std::basic_ostream<_CharT, _Traits>& __os,
    ^
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/bits/random.tcc:2050:5: note: candidate template ignored: could not
      match 'basic_ostream' against 'polymorphic_oarchive_route'
    operator<<(std::basic_ostream<_CharT, _Traits>& __os,
    ^
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/bits/random.tcc:2115:5: note: candidate template ignored: could not
      match 'basic_ostream' against 'polymorphic_oarchive_route'
    operator<<(std::basic_ostream<_CharT, _Traits>& __os,
    ^
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/bits/random.tcc:2188:5: note: candidate template ignored: could not
      match 'basic_ostream' against 'polymorphic_oarchive_route'
    operator<<(std::basic_ostream<_CharT, _Traits>& __os,
    ^
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/bits/random.tcc:2275:5: note: candidate template ignored: could not
      match 'basic_ostream' against 'polymorphic_oarchive_route'
    operator<<(std::basic_ostream<_CharT, _Traits>& __os,
    ^
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/bits/random.tcc:2352:5: note: candidate template ignored: could not
      match 'basic_ostream' against 'polymorphic_oarchive_route'
    operator<<(std::basic_ostream<_CharT, _Traits>& __os,
    ^
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/bits/random.tcc:2427:5: note: candidate template ignored: could not
      match 'basic_ostream' against 'polymorphic_oarchive_route'
    operator<<(std::basic_ostream<_CharT, _Traits>& __os,
    ^
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/bits/random.tcc:2596:5: note: candidate template ignored: could not
      match 'basic_ostream' against 'polymorphic_oarchive_route'
    operator<<(std::basic_ostream<_CharT, _Traits>& __os,
    ^
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/bits/random.tcc:2674:5: note: candidate template ignored: could not
      match 'basic_ostream' against 'polymorphic_oarchive_route'
    operator<<(std::basic_ostream<_CharT, _Traits>& __os,
    ^
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/bits/random.tcc:2750:5: note: candidate template ignored: could not
      match 'basic_ostream' against 'polymorphic_oarchive_route'
    operator<<(std::basic_ostream<_CharT, _Traits>& __os,
    ^
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/bits/random.tcc:2886:5: note: candidate template ignored: could not
      match 'basic_ostream' against 'polymorphic_oarchive_route'
    operator<<(std::basic_ostream<_CharT, _Traits>& __os,
    ^
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/bits/random.tcc:3096:5: note: candidate template ignored: could not
      match 'basic_ostream' against 'polymorphic_oarchive_route'
    operator<<(std::basic_ostream<_CharT, _Traits>& __os,
    ^
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/bits/random.tcc:3312:5: note: candidate template ignored: could not
      match 'basic_ostream' against 'polymorphic_oarchive_route'
    operator<<(std::basic_ostream<_CharT, _Traits>& __os,
    ^
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/complex:524:5: note: candidate template ignored: could not match
      'basic_ostream' against 'polymorphic_oarchive_route'
    operator<<(basic_ostream<_CharT, _Traits>& __os, const complex<_Tp>& __x)
    ^
In file included from /media/Workdata3/Development/Lux_dev/luxrays/src/slg/renderstate.cpp:23:
In file included from /media/Workdata3/Development/Lux_dev/luxrays/include/slg/renderstate.h:28:
/media/Workdata3/Development/Lux_dev/luxrays/deps/eos_portable_archive-v5.1/eos/portable_oarchive.hpp:322:15: warning: shift count
      >= width of type [-Wshift-count-overflow]
                                do { temp >>= CHAR_BIT; ++size; }
                                          ^   ~~~~~~~~
/media/Workdata3/Development/Lux_dev/linux_deps/include/boost/archive/impl/basic_binary_oprimitive.ipp:50:19: note: in
      instantiation of function template specialization 'eos::portable_oarchive::save<unsigned char>' requested here
    this->This()->save(static_cast<unsigned char>(sizeof(int)));
                  ^
In file included from /media/Workdata3/Development/Lux_dev/luxrays/src/slg/renderstate.cpp:23:
In file included from /media/Workdata3/Development/Lux_dev/luxrays/include/slg/renderstate.h:28:
/media/Workdata3/Development/Lux_dev/luxrays/deps/eos_portable_archive-v5.1/eos/portable_oarchive.hpp:322:15: warning: shift count
      >= width of type [-Wshift-count-overflow]
                                do { temp >>= CHAR_BIT; ++size; }
                                          ^   ~~~~~~~~
/media/Workdata3/Development/Lux_dev/linux_deps/include/boost/archive/detail/polymorphic_oarchive_route.hpp:79:32: note: in
      instantiation of function template specialization 'eos::portable_oarchive::save<char>' requested here
        ArchiveImplementation::save(t);
                               ^
/media/Workdata3/Development/Lux_dev/linux_deps/include/boost/archive/detail/polymorphic_oarchive_route.hpp:186:5: note: in
      instantiation of member function 'boost::archive::detail::polymorphic_oarchive_route<eos::portable_oarchive>::save'
      requested here
    polymorphic_oarchive_route(
    ^
/media/Workdata3/Development/Lux_dev/luxrays/src/slg/renderstate.cpp:78:37: note: in instantiation of function template
      specialization 'boost::archive::detail::polymorphic_oarchive_route<eos::portable_oarchive>::polymorphic_oarchive_route<char,
      std::char_traits<char> >' requested here
        eos::polymorphic_portable_oarchive outArchive(outStream);
                                           ^
In file included from /media/Workdata3/Development/Lux_dev/luxrays/src/slg/renderstate.cpp:23:
In file included from /media/Workdata3/Development/Lux_dev/luxrays/include/slg/renderstate.h:28:
/media/Workdata3/Development/Lux_dev/luxrays/deps/eos_portable_archive-v5.1/eos/portable_oarchive.hpp:322:15: warning: shift count
      >= width of type [-Wshift-count-overflow]
                                do { temp >>= CHAR_BIT; ++size; }
                                          ^   ~~~~~~~~
/media/Workdata3/Development/Lux_dev/linux_deps/include/boost/archive/detail/polymorphic_oarchive_route.hpp:82:32: note: in
      instantiation of function template specialization 'eos::portable_oarchive::save<signed char>' requested here
        ArchiveImplementation::save(t);
                               ^
/media/Workdata3/Development/Lux_dev/linux_deps/include/boost/archive/detail/polymorphic_oarchive_route.hpp:186:5: note: in
      instantiation of member function 'boost::archive::detail::polymorphic_oarchive_route<eos::portable_oarchive>::save'
      requested here
    polymorphic_oarchive_route(
    ^
/media/Workdata3/Development/Lux_dev/luxrays/src/slg/renderstate.cpp:78:37: note: in instantiation of function template
      specialization 'boost::archive::detail::polymorphic_oarchive_route<eos::portable_oarchive>::polymorphic_oarchive_route<char,
      std::char_traits<char> >' requested here
        eos::polymorphic_portable_oarchive outArchive(outStream);
                                           ^
3 warnings and 1 error generated.


Just FYI, still looking myelf also ..

EDIT: found: "this seems is actually a bug. In gcc a pointer is output – in clang so for some reason there's an operator<< overload that outputs a string stream as a pointer."

Here is a little test for compiler behavoiur:
Code: Select all
#include <string>
#include <iostream>
#include <sstream>
#include <boost/format.hpp>

int main() {
  std::stringstream ss;
  ss.str("example");
  std::cout << (boost::format("hello %1% world\n") % ss);
  std::cout << (boost::format("hello %1% world\n") % ss.str());
  return 0;
}

Result from my env always:
Code: Select all
jensverwiebe@jensverwiebe-MS-7885 /media/Workdata3/Development/test $ ./a.out
hello 0x7ffc96a0a9d8 world
hello example world


Getting this from gcc 4.8, clang 3.7 and clang 3.9 though ( use same toolchain atm. )

Jens
User avatar
jensverwiebe
Developer
 
Posts: 3410
Joined: Wed Apr 02, 2008 4:34 pm

Re: LuxCore: new features

Postby kalel » Sun Oct 23, 2016 2:48 am

I was met with this first on Windows (standard repository, nothing changed, except the new version after the Film serialization was added):

Code: Select all
     c:\LuxRender\luxrays\include\luxrays/utils/properties.h(38): fatal err
   or C1083: Cannot open include file: 'eos/portable_oarchive.hpp': No such
    file or directory (c:\LuxRender\lux\volumes\heterogeneous.cpp) [c:\LuxR
   ender\windows\Build_CMake\LuxRender\luxShared.vcxproj]


To fix this error in the simplest way, I've done the following:

1. Opened "luxrays\deps\eos_portable_archive-v5.1"
2. Copied the "eos" folder into: "C:\LuxRender\windows_deps\include" because this is the location for dependencies that the cmake build batch file is using.

If this is the correct way to do it, then please do this for the official windows_deps repository, as of course I'm not able to comit anything there. Otherwise, likely the cmake build 64 batch needs to be changed so it looks for eos dependency specifically at a different folder (the luxrays folder).

After this, I've been able to build successfully and I think that the build works, but haven't tested it well yet.

However, I did get:

2130 Warning(s)
0 Error(s)

And the warnings were mostly like:
Code: Select all
   C:\LuxRender\luxrays\include\luxrays/core/exttrianglemesh.h(407): warn
 ing C4250: 'luxrays::ExtMotionTriangleMesh' : inherits 'luxrays::MotionT
 riangleMesh::luxrays::MotionTriangleMesh::GetTotalVertexCount' via domin
 ance (C:\LuxRender\lux\volumes\volumegrid.cpp) [C:\LuxRender\windows\Bui
 ld_CMake\LuxRender\luxShared.vcxproj]
   C:\LuxRender\luxrays\include\luxrays/core/exttrianglemesh.h(407): warn
 ing C4250: 'luxrays::ExtMotionTriangleMesh' : inherits 'luxrays::MotionT
 riangleMesh::luxrays::MotionTriangleMesh::GetTotalTriangleCount' via dom
 inance (C:\LuxRender\lux\volumes\volumegrid.cpp) [C:\LuxRender\windows\B
 uild_CMake\LuxRender\luxShared.vcxproj]


 "C:\LuxRender\windows\Build_CMake\LuxRender\Lux.sln" (default target) (1
 ) ->
 "C:\LuxRender\windows\Build_CMake\LuxRender\pylux.vcxproj.metaproj" (def
 ault target) (8) ->
 "C:\LuxRender\windows\Build_CMake\LuxRender\pylux.vcxproj" (default targ
 et) (14) ->
   c:\luxrender\windows_deps\include\python3\pymath.h(21): warning C4005:
  'HAVE_ROUND' : macro redefinition [C:\LuxRender\windows\Build_CMake\Lux
 Render\pylux.vcxproj]


If someone knows the simplest way to fix these warnings without messing something else up, please let me know.

P.S. As a small note, now in LuxCorender UI, we have two options to save film:
Image
Image

Save rendering seems to saev a .rst file as well, however.

Edit: On trying to resume a file with PathCPU, I got this error:
Code: Select all
RUNTIME ERROR: gzip error: iostream stream error
Last edited by kalel on Sun Oct 23, 2016 6:57 am, edited 1 time in total.
kalel
 
Posts: 258
Joined: Sun Jul 17, 2016 6:35 am

Re: LuxCore: new features

Postby acasta69 » Sun Oct 23, 2016 6:43 am

kalel wrote:If someone knows the simplest way to fix these warnings without messing something else up, please let me know.

Yes, the lux build process generates 2000+ warnings...
You can edit lux/CMakeLists.txt to silence most of them (not all, some 500-600 will be there):

Cattura.PNG
Cattura.PNG (9.73 KiB) Viewed 1339 times
Windows 10 64 bits, i7-4770 3.4 GHz, RAM 16 GB, GTX 970 4GB v376.54
acasta69
 
Posts: 298
Joined: Fri Dec 20, 2013 3:18 am

Re: LuxCore: new features

Postby Dade » Mon Oct 24, 2016 2:15 am

jensverwiebe wrote:I struggle atm. with compile when using clang ( more strict ):


It compiles fine with gcc 4.8 and VisualC++ so I assume it is something clang very specific.
User avatar
Dade
Developer
 
Posts: 8364
Joined: Sat Apr 19, 2008 6:04 pm
Location: Italy

Re: LuxCore: new features

Postby jensverwiebe » Mon Oct 24, 2016 4:35 am

Dade wrote:
jensverwiebe wrote:I struggle atm. with compile when using clang ( more strict ):


It compiles fine with gcc 4.8 and VisualC++ so I assume it is something clang very specific.


Yep, the gcc compile with bash script works okay ( after fixing lux compile ;) ). On it. Seems really other overleaded << behaviour.

But it must be workedaround, else OSX would not be compilable ( always has clang ! ), see: https://github.com/mbunkus/mkvtoolnix/issues/1176

Jens
User avatar
jensverwiebe
Developer
 
Posts: 3410
Joined: Wed Apr 02, 2008 4:34 pm

Re: LuxCore: new features

Postby jensverwiebe » Mon Oct 24, 2016 9:21 am

Validated: OSX build is broke too naturally.

Did some tests: it compiles with:
Code: Select all
--- a/src/slg/renderstate.cpp   Mon Oct 24 11:17:21 2016 +0200
+++ b/src/slg/renderstate.cpp   Mon Oct 24 17:26:00 2016 +0200
@@ -83,7 +83,7 @@
    eos::polymorphic_portable_oarchive outArchive(outStream);
    //boost::archive::binary_oarchive outArchive(outStream);
 
-   outArchive << this;
+   outArchive << this->engineTag;


I can save them but loading gives me: ERROR: requested integer size exceeds type size: 80 ( linux clang and osx ) naturally, cause i get not all elements of the object.


Hmm .....

Did i say the gcc compiles but does not load the film either ?
EDIT: GCC works, my test with the gcc build failed cause i tested with our luxrays scenes, which direct the scn inside cfg thats fails.
Using own exported luxcore set works.

Jens
User avatar
jensverwiebe
Developer
 
Posts: 3410
Joined: Wed Apr 02, 2008 4:34 pm

Re: LuxCore: new features

Postby jensverwiebe » Tue Oct 25, 2016 2:31 pm

Got it working !

Code: Select all
diff -r 340c7837c5bd src/slg/renderstate.cpp
--- a/src/slg/renderstate.cpp   Mon Oct 24 11:17:21 2016 +0200
+++ b/src/slg/renderstate.cpp   Tue Oct 25 22:38:34 2016 +0200
@@ -83,7 +83,8 @@
    eos::polymorphic_portable_oarchive outArchive(outStream);
    //boost::archive::binary_oarchive outArchive(outStream);
 
-   outArchive << this;
+   RenderState *state = this;
+   outArchive << state;
 
    if (!outStream.good())
       throw runtime_error("Error while saving serialized render state: " + fileName);


The fixes the : not viable: no known conversion from 'slg::RenderState *' to 'slg::RenderState *&' for 1st argument

Compiles fine and i can now save/resume with clang builds.

EDIT: Added also a little cosmetic to the rst stream message: it now shows also correct when < 1024 ;) pushed all already.

Jens
User avatar
jensverwiebe
Developer
 
Posts: 3410
Joined: Wed Apr 02, 2008 4:34 pm

Re: LuxCore: new features

Postby Dade » Thu Nov 03, 2016 7:58 am

I added support for a new material definition property:

Code: Select all
scene.materials.luxinner.type = matte
scene.materials.luxinner.kd = 0.0 0.0 0.0
scene.materials.luxinner.emission = 0.5 0.5 0.5
# The new property
scene.materials.luxinner.emission.directlightsampling.type = ENABLED or DISABLED or AUTO (default value is AUTO)


This can be useful when rendering light sources defined by a mesh with many triangles (discussed here viewtopic.php?f=16&t=13149). The "AUTO" setting (i.e. the default value) will disable direct light sampling of materials used in more than 24 triangles so it should pretty much work out of the box without the need of any manual setting.
User avatar
Dade
Developer
 
Posts: 8364
Joined: Sat Apr 19, 2008 6:04 pm
Location: Italy

Re: LuxCore: new features

Postby B.Y.O.B. » Thu Nov 03, 2016 9:01 am

Thank you Dade.
User avatar
B.Y.O.B.
Developer
 
Posts: 5141
Joined: Wed Nov 10, 2010 4:10 pm
Location: Germany

Re: LuxCore: new features

Postby neo2068 » Mon Nov 14, 2016 1:34 pm

Hi!
I am working on smoke support for OpenCL renderengines. The framework is finished and these are the first renders with the OpenCL CPU driver.
smoke OCL-CPU.jpg

But there still is a problem if I use more than one densitygrid texture. If I use my GTX 780 and I get CL_OUT_OF_RESSOURCES error or crashes.
i7 5820K, 32 GB RAM, NVIDIA Geforce GTX 780 + GTX 560, Windows 10 64bit, Blender 2.77a
neo2068
Developer
 
Posts: 742
Joined: Sun May 03, 2009 2:11 am
Location: Germany

PreviousNext

Return to Architecture & Design

Who is online

Users browsing this forum: stark and 3 guests