PBR textures from 3D-Coat to Octane

Generic forum to discuss Octane Render, post ideas and suggest improvements.
Forum rules
Please add your OS and Hardware Configuration in your signature, it makes it easier for us to help you analyze problems. Example: Win 7 64 | Geforce GTX680 | i7 3770 | 16GB
lukas8410
Licensed Customer
Posts: 100
Joined: Tue Oct 02, 2012 9:59 am

Well I am just searching for simple workflow giving me a bit better posibilities in texturing than just doing it in Photoshop. I've been trying to use the settings
You've developed in this topic but they are not working for me, and because I was unable to get good translation of settings between 3d Coat, and Octane,
then I'll probably try to just paint Diffuse in 3d Coat, along with some masks, then export it to photoshop, and worry about specular, and rougness in Octane
only.

I haven't yet developed a good workflow in this, and need to make some tests, but I think it may work.

Cheers,
Luke

P.S. Do You guys think, there may be some kind of "translator" for engines like Octane in future in 3d Coat?
// Behance: https://www.behance.net/LukaszKondek //

- Octane v3
- 1x Geforce 980 Ti , and 1x 570 GTX
User avatar
ivankio
Licensed Customer
Posts: 103
Joined: Thu Nov 14, 2013 11:39 pm
Location: Curitiba - Brazil
Contact:

Wow, Jason. I was lazy using the Maya plugin so I didn't test your solution at first. Thanks for sharing. Seems to work really well - at least with the non-colored metals I've tested.

Granted that now I understand even less than I did previously :mrgreen:, from the samples I've seen in the metalness workflow, metalness was always a grayscale texture, taking specular color from the diffuse/albedo (another confusing pitchfork naming convention).
Also now that I realized that my idea of using IOR as metalness is from vray where it caps at 100. And never realized it was not quite faithfull for mirrors. What a mess. I need to study again.
GTX 1080 8gb, GTX 970 4gb, I5 4590, Z97-E, 32gb RAM, Win 10 64bits, Octane for Maya
User avatar
grimm
Licensed Customer
Posts: 1332
Joined: Wed Jan 27, 2010 8:11 pm
Location: Spokane, Washington, USA

lukas8410 wrote:Well I am just searching for simple workflow giving me a bit better posibilities in texturing than just doing it in Photoshop. I've been trying to use the settings
You've developed in this topic but they are not working for me, and because I was unable to get good translation of settings between 3d Coat, and Octane,
then I'll probably try to just paint Diffuse in 3d Coat, along with some masks, then export it to photoshop, and worry about specular, and rougness in Octane
only.

I haven't yet developed a good workflow in this, and need to make some tests, but I think it may work.

Cheers,
Luke

P.S. Do You guys think, there may be some kind of "translator" for engines like Octane in future in 3d Coat?
If you can give me some more details I could probably help you figure it out. 3D-Coat allows you to export every type of map under the sun so we should be able to get it to work. :) I have noticed that the diffuse will come into Octane darker than it looks in 3D-Coat. I have been bumping the power to 1.2 to get it to look better, but it might depend on the map. I have a feeling that it's a problem with 3D-Coat and the developers appear to be working on fixing issues like this.

I have been thinking of doing a translator to move the textures to Octane, but it would be a lot of work and I just haven't had the time. :(

Jason
Linux Mint 21.3 x64 | Nvidia GTX 980 4GB (displays) RTX 2070 8GB| Intel I7 5820K 3.8 Ghz | 32Gb Memory | Nvidia Driver 535.171
User avatar
grimm
Licensed Customer
Posts: 1332
Joined: Wed Jan 27, 2010 8:11 pm
Location: Spokane, Washington, USA

ivankio wrote:Wow, Jason. I was lazy using the Maya plugin so I didn't test your solution at first. Thanks for sharing. Seems to work really well - at least with the non-colored metals I've tested.

Granted that now I understand even less than I did previously :mrgreen:, from the samples I've seen in the metalness workflow, metalness was always a grayscale texture, taking specular color from the diffuse/albedo (another confusing pitchfork naming convention).
Also now that I realized that my idea of using IOR as metalness is from vray where it caps at 100. And never realized it was not quite faithfull for mirrors. What a mess. I need to study again.
No problem. :D I have found that if you change the texture workflow mode to "Gloss/Color Specular" it works best. And now that you can export metalness from this mode with the newer betas it's even easier. From that export menu you can export the "color specular" map and use it in Octane. Also check out this Lua script that Roeland created here for colored metals:

viewtopic.php?f=73&t=43973

This thread I did here might help you as well. In it I explain how I'm combining dielectric and conductive materials together and using the metalness map as a mask.

viewtopic.php?f=6&t=52222

Jason
Linux Mint 21.3 x64 | Nvidia GTX 980 4GB (displays) RTX 2070 8GB| Intel I7 5820K 3.8 Ghz | 32Gb Memory | Nvidia Driver 535.171
lukas8410
Licensed Customer
Posts: 100
Joined: Tue Oct 02, 2012 9:59 am

If you can give me some more details I could probably help you figure it out. 3D-Coat allows you to export every type of map under the sun so we should be able to get it to work. :) I have noticed that the diffuse will come into Octane darker than it looks in 3D-Coat. I have been bumping the power to 1.2 to get it to look better, but it might depend on the map. I have a feeling that it's a problem with 3D-Coat and the developers appear to be working on fixing issues like this.

I have been thinking of doing a translator to move the textures to Octane, but it would be a lot of work and I just haven't had the time. :(

Jason
Thanks Jason! I've made some tests, and the workflow I've been writing about may work. It's not very comfortable, but still it might be better - especially for some organic stuff - than just PS + Octane.
I paint my textures on various different layers, then export them to PS, then I export obj. and then I assemble everything in Octane for c4d. I'm not even trying for speculars, and roughness to look good
in 3d coat because the output is so different. I really wish though there would be some kind of "fixed" and proven way of achieving the same looks in both apps.

I've been thinking about using AO generated form 3d coat, because it looks very good but I haven't found good way to do it. Using Multiply node makes the whole texture quite dark.
Do You have any ideas?

Also I'm thinking about buying Quixel suite now, because it's 40% off. Never used it tough, so it's kind of hard to guess if it's a good idea. Can You bake ambient Occlusion in Quixel? Are those presets
that that are there from start changeable? Can You create Your own? I've heard it's quite slow. Is it true? Lots of questions :)

I am wondering of Chris Mills "script" or whatever it is could be used for 3D Coat workflow?

Thanks
Lukasz
// Behance: https://www.behance.net/LukaszKondek //

- Octane v3
- 1x Geforce 980 Ti , and 1x 570 GTX
User avatar
grimm
Licensed Customer
Posts: 1332
Joined: Wed Jan 27, 2010 8:11 pm
Location: Spokane, Washington, USA

I have never used Quixel before as it's Photoshop only (I think) and that doesn't run on Linux. :) I don't think you would want to use AO in Octane as Octane's GI is so much better. You are never going to get a 1:1 look between 3D-Coat and Octane as the first is a biased render and the later is unbiased. You could try using Octanes direct light mode that uses AO which is probably better than 3D-Coat's AO as well?

To get the objects and textures into c4d you might try the 3D-Coat applink for it here:

http://3dcoat.com/forum/index.php?showtopic=7574

I don't know how well it works but, if it does, it will be much easier to move between the applications. I stopped using the Blender applink because it has too many issues, but it does make the workflow much easier.

Jason
Linux Mint 21.3 x64 | Nvidia GTX 980 4GB (displays) RTX 2070 8GB| Intel I7 5820K 3.8 Ghz | 32Gb Memory | Nvidia Driver 535.171
lukas8410
Licensed Customer
Posts: 100
Joined: Tue Oct 02, 2012 9:59 am

Yeah You are probably right with AO, I'll try the applink tough it seems to be quite interesting option.

Thanks
Luke
// Behance: https://www.behance.net/LukaszKondek //

- Octane v3
- 1x Geforce 980 Ti , and 1x 570 GTX
miko3d
Licensed Customer
Posts: 70
Joined: Sat Mar 01, 2014 7:30 pm

I'm not very familiar with 3Dcoat as a 3D painter,but if it supports the metal/roughness (Disney) workflow you should be able to use my Quixel/PBR shader from this thread and get expected results by just exporting the textures.

Same with Substance Painter or any software that supports this workflow:

viewtopic.php?f=9&t=51470
spiraloid
Posts: 3
Joined: Wed Apr 22, 2015 12:17 am

Image

giving as I get. here's my canibal coded version.

note, to get correct normals you have to change the preferences in 3Dcoat to use 3dsMAX/lightwave style tangent normal maps.

Code: Select all

<?xml version='1.0' encoding='utf-8'?>
<OCS2 version='3000020'>
 <graph id='1' type='1' name='clipboard'>
  <node id='2' type='20005' name='Normal' position='1468.68 -239.826'>
   <pin name='input'>
    <node id='3' type='34'>
     <attr name='package' type='11'>C:\Users\Administrator\AppData\Roaming\OctaneRender\localDb\test.orbx</attr>
     <attr name='filename' type='11'>assets\ring_normal.tga</attr>
     <pin name='power'>
      <node id='4' type='31'>
       <attr name='value' type='6'>1</attr>
      </node>
     </pin>
     <pin name='gamma'>
      <node id='5' type='6'>
       <attr name='value' type='8'>2.2 0 0</attr>
      </node>
     </pin>
     <pin name='invert'>
      <node id='6' type='11'>
       <attr name='value' type='1'>0</attr>
      </node>
     </pin>
     <pin name='transform'>
      <node id='7' type='67'>
       <attr name='rotationOrder' type='2'>2</attr>
       <attr name='rotation' type='8'>0 0 0</attr>
       <attr name='scale' type='8'>1 1 1</attr>
       <attr name='translation' type='8'>0 0 0</attr>
      </node>
     </pin>
     <pin name='projection'>
      <node id='8' type='78'>
       <pin name='uvSet'>
        <node id='9' type='9'>
         <attr name='value' type='4'>1 0 0</attr>
        </node>
       </pin>
      </node>
     </pin>
     <pin name='borderMode'>
      <node id='10' type='57'>
       <attr name='value' type='2'>0</attr>
      </node>
     </pin>
    </node>
   </pin>
  </node>
  <node id='11' type='20005' name='Albedo' position='982.923 -258.373'>
   <pin name='input'>
    <node id='12' type='34'>
     <attr name='package' type='11'>C:\Users\Administrator\AppData\Roaming\OctaneRender\localDb\test.orbx</attr>
     <attr name='filename' type='11'>assets\ring_albedo.tga</attr>
     <pin name='power'>
      <node id='13' type='31'>
       <attr name='value' type='6'>1</attr>
      </node>
     </pin>
     <pin name='gamma'>
      <node id='14' type='6'>
       <attr name='value' type='8'>2.2 0 0</attr>
      </node>
     </pin>
     <pin name='invert'>
      <node id='15' type='11'>
       <attr name='value' type='1'>0</attr>
      </node>
     </pin>
     <pin name='transform'>
      <node id='16' type='67'>
       <attr name='rotationOrder' type='2'>2</attr>
       <attr name='rotation' type='8'>0 0 0</attr>
       <attr name='scale' type='8'>1 1 1</attr>
       <attr name='translation' type='8'>0 0 0</attr>
      </node>
     </pin>
     <pin name='projection'>
      <node id='17' type='78'>
       <pin name='uvSet'>
        <node id='18' type='9'>
         <attr name='value' type='4'>1 0 0</attr>
        </node>
       </pin>
      </node>
     </pin>
     <pin name='borderMode'>
      <node id='19' type='57'>
       <attr name='value' type='2'>0</attr>
      </node>
     </pin>
    </node>
   </pin>
  </node>
  <node id='20' type='20005' name='Roughness' position='1343 -247'>
   <pin name='input'>
    <node id='21' type='34'>
     <attr name='package' type='11'>C:\Users\Administrator\AppData\Roaming\OctaneRender\localDb\test.orbx</attr>
     <attr name='filename' type='11'>assets\ring_metallic.tga</attr>
     <pin name='power'>
      <node id='22' type='31'>
       <attr name='value' type='6'>1</attr>
      </node>
     </pin>
     <pin name='gamma'>
      <node id='23' type='6'>
       <attr name='value' type='8'>2.2 0 0</attr>
      </node>
     </pin>
     <pin name='invert'>
      <node id='24' type='11'>
       <attr name='value' type='1'>1</attr>
      </node>
     </pin>
     <pin name='transform'>
      <node id='25' type='67'>
       <attr name='rotationOrder' type='2'>2</attr>
       <attr name='rotation' type='8'>0 0 0</attr>
       <attr name='scale' type='8'>1 1 1</attr>
       <attr name='translation' type='8'>0 0 0</attr>
      </node>
     </pin>
     <pin name='projection'>
      <node id='26' type='78'>
       <pin name='uvSet'>
        <node id='27' type='9'>
         <attr name='value' type='4'>1 0 0</attr>
        </node>
       </pin>
      </node>
     </pin>
     <pin name='borderMode'>
      <node id='28' type='57'>
       <attr name='value' type='2'>0</attr>
      </node>
     </pin>
    </node>
   </pin>
  </node>
  <node id='29' type='20005' name='Emission' position='1604 -240.468'>
   <pin name='input'>
    <node id='30' type='34'>
     <attr name='package' type='11'>C:\Users\Administrator\AppData\Roaming\OctaneRender\localDb\test.orbx</attr>
     <attr name='filename' type='11'>assets\ring_emmision.tga</attr>
     <pin name='power'>
      <node id='31' type='31'>
       <attr name='value' type='6'>1</attr>
      </node>
     </pin>
     <pin name='gamma'>
      <node id='32' type='6'>
       <attr name='value' type='8'>1 0 0</attr>
      </node>
     </pin>
     <pin name='invert'>
      <node id='33' type='11'>
       <attr name='value' type='1'>0</attr>
      </node>
     </pin>
     <pin name='transform'>
      <node id='34' type='67'>
       <attr name='rotationOrder' type='2'>2</attr>
       <attr name='rotation' type='8'>0 0 0</attr>
       <attr name='scale' type='8'>1 1 1</attr>
       <attr name='translation' type='8'>0 0 0</attr>
      </node>
     </pin>
     <pin name='projection'>
      <node id='35' type='78'>
       <pin name='uvSet'>
        <node id='36' type='9'>
         <attr name='value' type='4'>1 0 0</attr>
        </node>
       </pin>
      </node>
     </pin>
     <pin name='borderMode'>
      <node id='37' type='57'>
       <attr name='value' type='2'>0</attr>
      </node>
     </pin>
    </node>
   </pin>
  </node>
  <node id='38' type='20005' name='Metallic' position='1206 -246.75'>
   <pin name='input'>
    <node id='39' type='34'>
     <attr name='package' type='11'>C:\Users\Administrator\AppData\Roaming\OctaneRender\localDb\test.orbx</attr>
     <attr name='filename' type='11'>assets\ring_metallic.tga</attr>
     <pin name='power'>
      <node id='40' type='31'>
       <attr name='value' type='6'>1</attr>
      </node>
     </pin>
     <pin name='gamma'>
      <node id='41' type='6'>
       <attr name='value' type='8'>2.2 0 0</attr>
      </node>
     </pin>
     <pin name='invert'>
      <node id='42' type='11'>
       <attr name='value' type='1'>1</attr>
      </node>
     </pin>
     <pin name='transform'>
      <node id='43' type='67'>
       <attr name='rotationOrder' type='2'>2</attr>
       <attr name='rotation' type='8'>0 0 0</attr>
       <attr name='scale' type='8'>1 1 1</attr>
       <attr name='translation' type='8'>0 0 0</attr>
      </node>
     </pin>
     <pin name='projection'>
      <node id='44' type='78'>
       <pin name='uvSet'>
        <node id='45' type='9'>
         <attr name='value' type='4'>1 0 0</attr>
        </node>
       </pin>
      </node>
     </pin>
     <pin name='borderMode'>
      <node id='46' type='57'>
       <attr name='value' type='2'>0</attr>
      </node>
     </pin>
    </node>
   </pin>
  </node>
  <graph id='47' type='1' name='PBR Material' position='1226.16 -71.361'>
   <node id='48' type='20005' name='Diffuse' position='-227.195 -196.499'>
    <pin name='input' connect='11'/>
   </node>
   <node id='49' type='20005' name='Amount' position='-77.1949 -196.499'>
    <pin name='input' connect='38'/>
   </node>
   <node id='50' type='20005' name='Roughness' position='72.8051 -196.499'>
    <pin name='input' connect='20'/>
   </node>
   <node id='51' type='20005' name='Normal' position='222.805 -196.499'>
    <pin name='input' connect='2'/>
   </node>
   <node id='52' type='20005' name='Amount' position='372.805 -196.499'>
    <pin name='input' connect='29'/>
   </node>
   <node id='53' type='16' name='Albedo' position='-65.1875 -96.499'>
    <pin name='diffuse' connect='48'/>
    <pin name='specular' connect='49'/>
    <pin name='roughness' connect='50'/>
    <pin name='index'>
     <node id='54' type='6'>
      <attr name='value' type='8'>1.3 0 0</attr>
     </node>
    </pin>
    <pin name='normal' connect='51'/>
    <pin name='opacity'>
     <node id='55' type='31'>
      <attr name='value' type='6'>1</attr>
     </node>
    </pin>
    <pin name='smooth'>
     <node id='56' type='11'>
      <attr name='value' type='1'>1</attr>
     </node>
    </pin>
    <pin name='edgesRounding'>
     <node id='57' type='6'>
      <attr name='value' type='8'>0 0 0</attr>
     </node>
    </pin>
    <pin name='filmwidth'>
     <node id='58' type='31'>
      <attr name='value' type='6'>0</attr>
     </node>
    </pin>
    <pin name='filmindex'>
     <node id='59' type='6'>
      <attr name='value' type='8'>1.45 0 0</attr>
     </node>
    </pin>
   </node>
   <node id='60' type='19' name='Mix material' position='29.1296 13.1804'>
    <pin name='amount' connect='49'/>
    <pin name='material1' connect='53'/>
    <pin name='material2' connect='61'/>
   </node>
   <node id='62' type='17' name='Emission' position='-227.195 -13.2889'>
    <pin name='diffuse'>
     <node id='63' type='33'>
      <attr name='value' type='8'>0 0 0</attr>
     </node>
    </pin>
    <pin name='roughness'>
     <node id='64' type='31'>
      <attr name='value' type='6'>0</attr>
     </node>
    </pin>
    <pin name='opacity'>
     <node id='65' type='31'>
      <attr name='value' type='6'>1</attr>
     </node>
    </pin>
    <pin name='smooth'>
     <node id='66' type='11'>
      <attr name='value' type='1'>1</attr>
     </node>
    </pin>
    <pin name='edgesRounding'>
     <node id='67' type='6'>
      <attr name='value' type='8'>0 0 0</attr>
     </node>
    </pin>
    <pin name='emission'>
     <node id='68' type='53'>
      <pin name='efficiency or texture'>
       <node id='69' type='31'>
        <attr name='value' type='6'>1</attr>
       </node>
      </pin>
      <pin name='power'>
       <node id='70' type='6'>
        <attr name='value' type='8'>3000 0 0</attr>
       </node>
      </pin>
      <pin name='surfaceBrightness'>
       <node id='71' type='11'>
        <attr name='value' type='1'>1</attr>
       </node>
      </pin>
      <pin name='temperature'>
       <node id='72' type='6'>
        <attr name='value' type='8'>6500 0 0</attr>
       </node>
      </pin>
      <pin name='normalize'>
       <node id='73' type='11'>
        <attr name='value' type='1'>1</attr>
       </node>
      </pin>
      <pin name='distribution'>
       <node id='74' type='31'>
        <attr name='value' type='6'>1</attr>
       </node>
      </pin>
      <pin name='sampling_rate'>
       <node id='75' type='6'>
        <attr name='value' type='8'>0.2 0 0</attr>
       </node>
      </pin>
      <pin name='illumination'>
       <node id='76' type='11'>
        <attr name='value' type='1'>1</attr>
       </node>
      </pin>
      <pin name='lightPassId'>
       <node id='77' type='9'>
        <attr name='value' type='4'>1 0 0</attr>
       </node>
      </pin>
     </node>
    </pin>
    <pin name='matte'>
     <node id='78' type='11'>
      <attr name='value' type='1'>0</attr>
     </node>
    </pin>
   </node>
   <node id='79' type='19' name='Mix material' position='25.1952 83.2958'>
    <pin name='amount' connect='52'/>
    <pin name='material1' connect='62'/>
    <pin name='material2' connect='60'/>
   </node>
   <graph id='80' type='5' name='Metallic' inspectable='0' position='238.057 13.3116'>
    <attr name='color' type='8'>0 0 0</attr>
    <attr name='package' type='11'>C:\Users\Administrator\AppData\Roaming\OctaneRender\localDb\test.orbx</attr>
    <attr name='filename' type='11'>assets\metal.lua</attr>
    <attr name='scriptStorage' type='10'></attr>
    <node id='81' type='20005' name='Color' position='0 -100'>
     <pin name='input'>
      <node id='82' type='33'>
       <attr name='value' type='8'>1 1 1</attr>
      </node>
     </pin>
    </node>
    <node id='83' type='20002' name='index of refraction (n, k)' position='100 -100'>
     <pin name='input'>
      <node id='84' type='6'>
       <attr name='value' type='8'>0.42203 2.3461 0</attr>
      </node>
     </pin>
    </node>
    <node id='85' type='20005' name='Diffuse' position='200 -100'>
     <pin name='input'>
      <node id='86' type='31'>
       <attr name='value' type='6'>0</attr>
      </node>
     </pin>
    </node>
    <node id='87' type='20005' name='Roughness' position='300 -100'>
     <pin name='input' connect='50'/>
    </node>
    <node id='88' type='20005' name='Bump' position='400 -100'>
    </node>
    <node id='89' type='20005' name='Normal' position='500 -100'>
     <pin name='input' connect='51'/>
    </node>
    <node id='90' type='20022' name='Displacement' position='600 -100'>
    </node>
    <node id='91' type='20005' name='Opacity' position='700 -100'>
     <pin name='input'>
      <node id='92' type='31'>
       <attr name='value' type='6'>1</attr>
      </node>
     </pin>
    </node>
    <node id='93' type='20001' name='Smooth' position='800 -100'>
     <pin name='input'>
      <node id='94' type='11'>
       <attr name='value' type='1'>1</attr>
      </node>
     </pin>
    </node>
    <node id='95' type='20002' name='Rounded edges radius' position='900 -100'>
     <pin name='input'>
      <node id='96' type='6'>
       <attr name='value' type='8'>0 0 0</attr>
      </node>
     </pin>
    </node>
    <node id='97' type='20005' name='Film width' position='1000 -100'>
     <pin name='input'>
      <node id='98' type='31'>
       <attr name='value' type='6'>0</attr>
      </node>
     </pin>
    </node>
    <node id='99' type='20002' name='Film IOR' position='1100 -100'>
     <pin name='input'>
      <node id='100' type='6'>
       <attr name='value' type='8'>1.45 0 0</attr>
      </node>
     </pin>
    </node>
    <node id='61' type='30007' name='metal' position='0 100'>
     <pin name='input' connect='101'/>
    </node>
   </graph>
   <node id='102' type='30007' name='Mix material' position='-227.195 183.296'>
    <pin name='input' connect='79'/>
   </node>
  </graph>
 </graph>
</OCS2>
Post Reply

Return to “General Discussion”