Mesa and proprietary drivers both implement the EXT_gpu_shader4 functionality, but Mesa doesn't expose it as an extension since all of the features the extension provides to GLSL are also core in OpenGL version 3.0 (although the extension itself isn't core.) SP2 should work fine without the extension on Mesa drivers as long as the shaders use #version 150 or later, which I assume they do. For all intents and purposes it's a legacy extension on Linux. Not sure about OS X, though. Their OpenGL implementation is weird.
Could these change logs be linked from the update popup ? I was recently prompted to upgrade to 2.1.1 1251 on startup, but had to hunt around (facebook page, Substance forums, and finally here) to find what it is about, since the popup itself said nothing about the update.
Could these change logs be linked from the update popup ? I was recently prompted to upgrade to 2.1.1 1251 on startup, but had to hunt around (facebook page, Substance forums, and finally here) to find what it is about, since the popup itself said nothing about the update.
Also as of 2.1.1 shelf drag and drop for spmsk doesn't seem to work. Working fine for exr, sbsar and spsm though.
It works fine on my side if I import it in the current "session" or "shelf". Presets (including smart materials and smart masks) can't be imported into a project.
Good to hear about the release notes - I think this sort of things should always be as easy to access as possible, straight from where it matters (that is to say, the app itself). Even if a clickable link is not possible, just having the link in plain text would be great.
As for the spmsk import issue, here is what I am getting using the Sunfade mask available from Substance Share. I *think* I remember it importing fine before 2.1.1, but I am not 100% sure. That said, what I am observing is that none of the drag and drop import options succeed in bringing it in, whereas placing it manually into the documents folder works properly.
So, if this is intended/expected behavior, there should definitely be a popup window warning the user that what is being attempted is not supposed to work, with clear instructions on how to do things properly. Your "file>import ressource" popup warning is a fantastic example on how to do things right UX wise - it might be a dead menu entry, but it does a great job at pointing the user in the right direction. I think this philosophy of easy discoverability could be applied to other areas of the program with great success.
Hey there. Good job with this update! Is there any chance that you guys will fix that well known problem with performance on GTX 970 gpu? Are you working on this? Or maybe that's Nvidia' issue?
Thanks guys! The GTX 970 issue is a hardware problem so there is nothing we can really do in the short term, but the work we are doing for future Udim support should allow to workaround the issue.
You can already have more than 4 materials. You can modify the default layered shader and add additional material layers if you want. We haven't included a higher number of materials by default because it may not work properly on older hardware.
With material layering UI, you should rename material1 to material0, so mask(1) matches material 1, mask2 -> material 2 etc. Seems slightly more intuitive than Mask2 affecting Material1. Also, watching that second video, I wonder how useful it would be to be able to instance "paint" layers across your MatLayer mask1,2,3. So you don't have to redo the same paint across multiple masks.
To second on what Bek suggested, I actually think the layer masks should be renamed to; "Material 2 - Mask" (starts at 2 because 1 is base), "Material 3 - Mask" and so on...I think it's the best way to show the connection between the mask and the material you are working on. You can't get confused with such naming!
Thanks for the feedback, indeed we'll update the default shader in a future update with better names, in the meantime, you can easily edit the shader and change the mask names.
Sucks that there is an issue with 970's, especially considering how I have 2 of them as my GPU's I have faith in you guys though, Substance has been fantastic so far, an insane amount of fun to work with!
Hi Jerc, is the masking system limited to only 4 layers, or can you add more through the interface? Also do you know any games that are running the layers in real time, or is everyone still baking these out to standard textures for use in engine. For example do you know if Order 1886 actually runs the tiling texture in real time blended together with the masks, or do they composite it to a classic albedo, normal, roughness baked into 0-1 uv's for use in game.
Hey Malcolm! The default shader we provide only supports up to 4 materials, but you can easily edit the shader to support more. We don't have the UI to support dynamically adding or removing layers yet.
As for real time unbaked layers, a few already released titles come to mind: Uncharted 4, Paragon, the new Unreal Tournament, open world Ubisoft games, and a lot of unreleased games I can't yet talk about, it's getting pretty common from the discussions we have with various studios. (I'm not sure if they ended up baking stuff down for The Order)
Each studio seems to have its own tricks to make it work performance wise and we see very different technical solutions from one to another.
Jerc, thanks for the info, very helpful. I'm really surprised to hear there are actual games on this generation preserving the tiling layers at run time, very cool. That will definitely be the future when we don't worry about resolution and just worry about creating nice masks.
kernersvillan, very cool! And you're going to be able to ship the real time masking at 30fps on xbox one? Is there any public documentation I can take a look at and pass on to our tech art team. I'd love to start working this way at some point.
Well, we're PC only, but we have comparable lower specs that would run 30fps on Xbone. Paragon runs at 60fps on PS4 and uses them as well. There's really no magic to it, were just basically using more texture samplers in order to get better tiling/fidelity controlled through a mask/masks. The only public documentation on them I believe is on our UDN at https://docs.unrealengine.com/latest/INT/Engine/Rendering/Materials/LayeredMaterials/
You can also download the Unreal Tournament editor off of the Epic launcher and take a look at our shaders. Our weapons and characters use this technique as well.
Cool thanks for the info Josh! We've been working this way for a couple years now, but I'd love to run the masks in real time so we can have infinite texture resolution and stop worrying about object scale or gun scope zoom and low resolution looking textures. I guess the issue is that it costs fps which is why I'm assuming we're not doing it. So for UT, you are using the tiling layers on small props as well?
kernersvillan The shader file itself (.glsl) can be modified, and the UI in Painter + the exported json file will adapt accordingly. Increasing the number of layers boils down to copy pasting the textures and materials definition at the begining of the shader to add new ones and duplicating the few lines of code in the fragment shader doing the blending between the layers.
More than 4 layers is a must for a lot of objects, I think you should actually default the shader to 9, the bottom layer doesn't need a mask, and then you have two channel packed textures which would be 8 layers. Also in the interface it's quite confusing that you've put the top layer at the bottom, the rest of painter mimics photoshop where the top layer is the top layer, but for the masking stuff it's inverted which is really confusing. Could you flip it so the top layer renders on top of the bottom layer visually and technically.
malcom, I can only think of a couple of props that dont use this method in UT
Jerc, thanks for the answer. Is there a way that you can add that functionality directly in Painter itself with a "add additional material" button, without the hassle of having to modify code? Our character artist was trying to add extra material slots in the code itself yesterday but was getting crashes. There seemed to be a lot of variables involved, and Im just a dumb artist who likes clicking buttons instead of modifying code
Yeah we don't have a way to make the UI dynamic and adapt to an uber shader in which we could turn layers on or off yet. That being said, we will likely add a shader that blends up to 10 layers in an upcoming update. Then you don't need to fill all the slots for it to work.
I'll see if I can find some time to create the shader and post it here before that.
Another great update Jeremie. Congrats. I know I always ask for this and I know Sebastien said a revamp of the shelf is on the way but, what I really miss the most is a sub-folder shelf system. This would make texture/alpha organisation so much more user-friendly. Also, is there any plans to implement some sort of baked map refresh? What I mean is let's say I bake my NM and add stamp details. In order to have those details propogate to my NM and be picked up in filters/generators/etc I have to export/reimport my NM with the added details. It would be great if this was automated somehow. Once again, thanks for all the hard work.
The 2.3 version brings a full Photoshop export path from Substance Painter. Layers, masks and blending modes can now be transferred to Photoshop and each individual channel is exported in its own PSD.
Although we believe Substance is the future of texturing, Adobe Photoshop remains the pivot of many artists' toolboxes and we felt having a consistent way to build PSD out of Substance Painter projects would help artists harness the full potential of their toolset and make sharing or delivering assets made with Substance Painter easier.
Changes :
[Plugin] New "Export to Photoshop" plugin (export complete layer stack)
[Export] Allow to specify the width of the padding (in pixels or infinite)
[Export] Allow to set the type of backgorund outside of the UVs
[Shelf] New material layering shader to blend 10 materials
[Shelf] New clay shader to view details with the height/normal channel
[Shelf] New baked lighting filter with environment input
[Shelf] Updated some mask generators to add non-square transformations
[Viewport] Add composited normal map (normal+height+bake) to the solo mode
[Scripting] Allow to export additional maps
[Scripting] Allow to query available Additional maps per Texture Set
[Scripting] Allow to retrieve channel format
[Scripting] Add examples in the baking documentation
[Scripting] Allow to query the visibility of a layer
[Scripting] Allow to query layer's blending mode and opacity
[Scripting] Allow to export converted maps (final normal maps, mixed AO, etc.)
[Substance] Read and connect custom usages
[Shortcuts] Add modifier key (SHIFT) to cycle solo mode backward
[Export] Updated default export preset to disable alpha
[UI] Thumbnails are now only computed if the engine is available
[UI] Display a mention when thumbnails are computing
Fixes:
Crash with some old projects when opening them
Crash with corrupted texture channels cache
Crash when blending more than 4 materials with Material Layering workflow
[UI] Tool shortcuts don't work if the toolbar is hidden
[UI] Iray toolbar is labeled "Untitled" in the View Menu
[UI] Plugin toolbars are named "Untilted" in the View Menu
[Baker] Pressing Enter while editing a bake setting launches the bake process
[Baker] Incorrect ranges for some parameters
[Import] Impossible to import OBJ meshes because of very big numbers
[Import] Some OBJ files are imported with too many sub-objects
[Export] channel background is filled with black instead of default color at export
[Tool] Particles don't work properly if FOV is too low
[Tool] Brush preview color is incorrect with masks in sub-stacks
[Viewport] When brush goes into empty areas in 2D view it becomes gigantic
[Viewport] Blank brush preview when painting Normal textures
[Scripting] Incorrect documentation : "ao" listed instead of "ambientocclusion"
[Scripting] Process started with subprocess() is killed when closing Painter
[Shelf] Baked lighting filter use incorrect AO input
[MacOS] Removed Fire Hydrant project (incompatible)
Default project opens when loading a *.spt file (instead of *.spp)
Know Issue: [Plugin] Due to Photoshop's blending modes limitations, the height and normal channel blending can't be transfered perfectly.
I don't get the need of that Photoshop export feature, I'll not be able to see what I am doing inside of PS and DDO allows me to see the changes I have made to the document. I'd want to create my texture from scratch if I go PS way of texturing. Also there is no go back button If only we got PS brush support, that would have made sense.
Although I'm hugely appreciative of the lightning development of SP and the continued great improvements, I'm not sure the PS export is too useful. At first I thought it would be a live bridge with the ability to augment channels using PS tools(like adding details to NMs a-la NDO), or using traditional PS texturing techniques. Maybe in the future.....;)
The target audience of this export plugin is mainly artists and companies who need to provide PSDs to clients or colleagues who may not have access to Painter. It doesn't change our plans to bring more PS tools in Painter in the future and really is a separate story
Digging these changes: [Shelf] New baked lighting filter with environment input (good for generating a good base for handpainting diffuse-only stuff) [Export] Allow to specify the width of the padding (in pixels or infinite) [Viewport] Add composited normal map (normal+height+bake) to the solo mode
These are super handy changes. Keep em coming! The photoshop stuff, yeah...personally for me I'm trying to replace Photoshop entirely so I don't care too much but I totally understand the people who are forced to use PS or PSDs.
The only thing I'm still waiting on is the ability to change the color picker hotkey to a Hold/Press instead of a Toggle. That would help handpainting stuff a bit and I can't imagine it's too difficult to implement.
The target audience of this export plugin is mainly artists and companies who need to provide PSDs to clients or colleagues who may not have access to Painter.
And - without having tested the newest release - I'm very happy for it!
I'm getting an error message with the PSD export. It'd pop up along the export and just gives up giving me the rest of the textures. So i'm left with all my textures besides the diffuse or normals when given the error . Here's the message i get:
Replies
2.1.1
Changes:
Fixes:
Computer specs:
System Information
------------------
Time of this report: 7/3/2016, 12:56:37
Machine name: SAMSPC
Operating System: Windows 10 Home 64-bit (10.0, Build 10586) (10586.th2_release_sec.160527-1834)
Language: English (Regional Setting: English)
System Manufacturer: ASUS
System Model: All Series
BIOS: BIOS Date: 08/15/14 17:03:32 Ver: 16.03
Processor: Intel(R) Core(TM) i7-4770K CPU @ 3.50GHz (8 CPUs), ~3.5GHz
Memory: 32768MB RAM
Available OS Memory: 32704MB RAM
Page File: 53063MB used, 13434MB available
Windows Dir: C:\WINDOWS
DirectX Version: 12
DX Setup Parameters: Not found
User DPI Setting: Using System DPI
System DPI Setting: 96 DPI (100 percent)
DWM DPI Scaling: Disabled
Miracast: Not Available
Microsoft Graphics Hybrid: Not Supported
DxDiag Version: 10.00.10586.0000 64bit Unicode
------------
DxDiag Notes
------------
Display Tab 1: No problems found.
Display Tab 2: No problems found.
Sound Tab 1: No problems found.
Sound Tab 2: No problems found.
Sound Tab 3: No problems found.
Sound Tab 4: No problems found.
Input Tab: No problems found.
--------------------
DirectX Debug Levels
--------------------
Direct3D: 0/4 (retail)
DirectDraw: 0/4 (retail)
DirectInput: 0/5 (retail)
DirectMusic: 0/5 (retail)
DirectPlay: 0/9 (retail)
DirectSound: 0/5 (retail)
DirectShow: 0/6 (retail)
---------------
Display Devices
---------------
Card name: NVIDIA GeForce GTX 780
Manufacturer: NVIDIA
Chip type: GeForce GTX 780
DAC type: Integrated RAMDAC
Device Type: Full Device
Device Key: Enum\PCI\VEN_10DE&DEV_1004&SUBSYS_17843842&REV_A1
Display Memory: 19365 MB
Dedicated Memory: 3013 MB
Shared Memory: 16352 MB
Current Mode: 1920 x 1080 (32 bit) (60Hz)
Monitor Name: Generic PnP Monitor
Monitor Model: ASUS VH238
Monitor Id: ACI23C3
Native Mode: 1920 x 1080(p) (60.000Hz)
Output Type: DVI
Driver Name: nvd3dumx.dll,nvwgf2umx.dll,nvwgf2umx.dll,nvwgf2umx.dll,nvd3dum,nvwgf2um,nvwgf2um,nvwgf2um
Driver File Version: 10.18.0013.6839 (English)
Driver Version: 10.18.13.6839
DDI Version: 12
Feature Levels: 11.0,10.1,10.0,9.3,9.2,9.1
Driver Model: WDDM 2.0
Graphics Preemption: DMA
Compute Preemption: DMA
Miracast: Not Supported
Hybrid Graphics GPU: Not Supported
Power P-states: Not Supported
Driver Attributes: Final Retail
Driver Date/Size: 6/2/2016 12:00:00 AM, 17432544 bytes
WHQL Logo'd: Yes
WHQL Date Stamp:
Device Identifier: {D7B71E3E-5344-11CF-4541-89371CC2C735}
Vendor ID: 0x10DE
Device ID: 0x1004
SubSys ID: 0x17843842
Revision ID: 0x00A1
Driver Strong Name: oem20.inf:0f066de3181e420a:Section009:10.18.13.6839:pci\ven_10de&dev_1004
Rank Of Driver: 00D12001
Video Accel: ModeMPEG2_A ModeMPEG2_C ModeVC1_C ModeWMV9_C
DXVA2 Modes: DXVA2_ModeMPEG2_IDCT DXVA2_ModeMPEG2_VLD DXVA2_ModeVC1_D2010 DXVA2_ModeVC1_VLD DXVA2_ModeVC1_IDCT DXVA2_ModeWMV9_IDCT DXVA2_ModeH264_VLD_Stereo_Progressive_NoFGT DXVA2_ModeH264_VLD_Stereo_NoFGT DXVA2_ModeH264_VLD_NoFGT DXVA2_ModeHEVC_VLD_Main DXVA2_ModeMPEG4pt2_VLD_Simple DXVA2_ModeMPEG4pt2_VLD_AdvSimple_NoGMC
D3D9 Overlay: Supported
DXVA-HD: Supported
DDraw Status: Enabled
D3D Status: Enabled
AGP Status: Enabled
MPO Caps: Not Supported
MPO Stretch: Not Supported
MPO Media Hints: Not Supported
MPO Formats: Not Supported
Card name: NVIDIA GeForce GTX 780
Manufacturer: NVIDIA
Chip type: GeForce GTX 780
DAC type: Integrated RAMDAC
Device Type: Full Device
Device Key: Enum\PCI\VEN_10DE&DEV_1004&SUBSYS_17843842&REV_A1
Display Memory: 19365 MB
Dedicated Memory: 3013 MB
Shared Memory: 16352 MB
Current Mode: 1920 x 1080 (32 bit) (60Hz)
Monitor Name: Generic PnP Monitor
Monitor Model: ASUS VH238
Monitor Id: ACI23C3
Native Mode: 1920 x 1080(p) (60.000Hz)
Output Type: DVI
Driver Name: nvd3dumx.dll,nvwgf2umx.dll,nvwgf2umx.dll,nvwgf2umx.dll,nvd3dum,nvwgf2um,nvwgf2um,nvwgf2um
Driver File Version: 10.18.0013.6839 (English)
Driver Version: 10.18.13.6839
DDI Version: 12
Feature Levels: 11.0,10.1,10.0,9.3,9.2,9.1
Driver Model: WDDM 2.0
Graphics Preemption: DMA
Compute Preemption: DMA
Miracast: Not Supported
Hybrid Graphics GPU: Not Supported
Power P-states: Not Supported
Driver Attributes: Final Retail
Driver Date/Size: 6/2/2016 12:00:00 AM, 17432544 bytes
WHQL Logo'd: Yes
WHQL Date Stamp:
Device Identifier: {D7B71E3E-5344-11CF-4541-89371CC2C735}
Vendor ID: 0x10DE
Device ID: 0x1004
SubSys ID: 0x17843842
Revision ID: 0x00A1
Driver Strong Name: oem20.inf:0f066de3181e420a:Section009:10.18.13.6839:pci\ven_10de&dev_1004
Rank Of Driver: 00D12001
Video Accel: ModeMPEG2_A ModeMPEG2_C ModeVC1_C ModeWMV9_C
DXVA2 Modes: DXVA2_ModeMPEG2_IDCT DXVA2_ModeMPEG2_VLD DXVA2_ModeVC1_D2010 DXVA2_ModeVC1_VLD DXVA2_ModeVC1_IDCT DXVA2_ModeWMV9_IDCT DXVA2_ModeH264_VLD_Stereo_Progressive_NoFGT DXVA2_ModeH264_VLD_Stereo_NoFGT DXVA2_ModeH264_VLD_NoFGT DXVA2_ModeHEVC_VLD_Main DXVA2_ModeMPEG4pt2_VLD_Simple DXVA2_ModeMPEG4pt2_VLD_AdvSimple_NoGMC
D3D9 Overlay: Supported
DXVA-HD: Supported
DDraw Status: Enabled
D3D Status: Enabled
AGP Status: Enabled
MPO Caps: Not Supported
MPO Stretch: Not Supported
MPO Media Hints: Not Supported
MPO Formats: Not Supported
It works fine on my side if I import it in the current "session" or "shelf". Presets (including smart materials and smart masks) can't be imported into a project.
Good to hear about the release notes - I think this sort of things should always be as easy to access as possible, straight from where it matters (that is to say, the app itself). Even if a clickable link is not possible, just having the link in plain text would be great.
As for the spmsk import issue, here is what I am getting using the Sunfade mask available from Substance Share. I *think* I remember it importing fine before 2.1.1, but I am not 100% sure. That said, what I am observing is that none of the drag and drop import options succeed in bringing it in, whereas placing it manually into the documents folder works properly.
https://www.youtube.com/watch?v=9ZLW8oRiQMk&feature=youtu.be
So, if this is intended/expected behavior, there should definitely be a popup window warning the user that what is being attempted is not supposed to work, with clear instructions on how to do things properly. Your "file>import ressource" popup warning is a fantastic example on how to do things right UX wise - it might be a dead menu entry, but it does a great job at pointing the user in the right direction. I think this philosophy of easy discoverability could be applied to other areas of the program with great success.
SP 2.2.0
Fixes:
http://www.youtube.com/watch?v=vOx57nwt92c
http://www.youtube.com/watch?v=hVXroe8e88s
Is there any chance that you guys will fix that well known problem with performance on GTX 970 gpu? Are you working on this? Or maybe that's Nvidia' issue?
Thanks in advance for response.
We haven't included a higher number of materials by default because it may not work properly on older hardware.
To second on what Bek suggested, I actually think the layer masks should be renamed to; "Material 2 - Mask" (starts at 2 because 1 is base), "Material 3 - Mask" and so on...I think it's the best way to show the connection between the mask and the material you are working on. You can't get confused with such naming!
Also do you know any games that are running the layers in real time, or is everyone still baking these out to standard textures for use in engine. For example do you know if Order 1886 actually runs the tiling texture in real time blended together with the masks, or do they composite it to a classic albedo, normal, roughness baked into 0-1 uv's for use in game.
We don't have the UI to support dynamically adding or removing layers yet.
As for real time unbaked layers, a few already released titles come to mind: Uncharted 4, Paragon, the new Unreal Tournament, open world Ubisoft games, and a lot of unreleased games I can't yet talk about, it's getting pretty common from the discussions we have with various studios.
(I'm not sure if they ended up baking stuff down for The Order)
Each studio seems to have its own tricks to make it work performance wise and we see very different technical solutions from one to another.
malcom, we use material layers almost entirely on assets in Unreal Tournament, and we run at 120hz on high end
You can also download the Unreal Tournament editor off of the Epic launcher and take a look at our shaders. Our weapons and characters use this technique as well.
Increasing the number of layers boils down to copy pasting the textures and materials definition at the begining of the shader to add new ones and duplicating the few lines of code in the fragment shader doing the blending between the layers.
Jerc, thanks for the answer. Is there a way that you can add that functionality directly in Painter itself with a "add additional material" button, without the hassle of having to modify code? Our character artist was trying to add extra material slots in the code itself yesterday but was getting crashes. There seemed to be a lot of variables involved, and Im just a dumb artist who likes clicking buttons instead of modifying code
That being said, we will likely add a shader that blends up to 10 layers in an upcoming update. Then you don't need to fill all the slots for it to work.
I'll see if I can find some time to create the shader and post it here before that.
SP 2.3.0
The 2.3 version brings a full Photoshop export path from Substance Painter. Layers, masks and blending modes can now be transferred to Photoshop and each individual channel is exported in its own PSD.
Although we believe Substance is the future of texturing, Adobe Photoshop remains the pivot of many artists' toolboxes and we felt having a consistent way to build PSD out of Substance Painter projects would help artists harness the full potential of their toolset and make sharing or delivering assets made with Substance Painter easier.
Changes :Fixes:
http://www.youtube.com/watch?v=6oJrot26ebI
- [Viewport] Add
composited normal map (normal+height+bake) to the solo mode
Best update ever.If only we got PS brush support, that would have made sense.
Maybe in the future.....;)
As always, thanks for the update/fixes.
It doesn't change our plans to bring more PS tools in Painter in the future and really is a separate story
Digging these changes:
[Shelf] New baked lighting filter with environment input (good for generating a good base for handpainting diffuse-only stuff)
[Export] Allow to specify the width of the padding (in pixels or infinite)
[Viewport] Add composited normal map (normal+height+bake) to the solo mode
These are super handy changes. Keep em coming!
The photoshop stuff, yeah...personally for me I'm trying to replace Photoshop entirely so I don't care too much but I totally understand the people who are forced to use PS or PSDs.
The only thing I'm still waiting on is the ability to change the color picker hotkey to a Hold/Press instead of a Toggle. That would help handpainting stuff a bit and I can't imagine it's too difficult to implement.
Does it appear during the export phase or the psd constructing phase in Photoshop?