Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - dukecg

Pages: [1] 2 3
  • Will be 3D. You'll be able to procedurally generate (using signed distance fields*) or reference and rasterize 3D meshes.
  • Most nodes (where it makes sense) will take a 3D position input and fall back to 2D if one is not supplied.
  • There will be a loop node, with a beginning and end. All nodes will have access to an $iteration variable in their function graphs.
  • The in-editor SVG design experience will be closer to a simplified inkscape.
  • There will be better SVG support for things like repeating a pattern along a stroke, anti-aliasing, etc.
  • Most nodes will be material based, so you can feed for example the Tile Sampler with an entire material rather than a single input. I don't expect this to magically work with Normal Maps.
  • It will support and generated multi-channel distance fields for hard angles**.

*For more on modelling with signed distance fields, see:


Content - Substance Source - No source (sbs) files?
 on: March 16, 2018, 03:44:51 am 
Is there a reason many of the substances on Substance Source don't have sbs files? I learn a lot from them :) I'm specifically after Low Tide Seaweed Covered Soil and Low Tide Moss Rock.

I understand why third party ( ones are only sbsars.

SubstanceSubstance - Discussions - Potential new awesome workflow
 on: March 15, 2018, 12:50:48 pm 
So Graphine who make Granite for Unity and Unreal released version 5 sometime in the last week. Granite does virtual textures. The big new feature for me is Procedural Virtual Texturing. This means it renders a user specified material at an enormous resolution (like 10 pixels per cm) and does fancy stuff by dicing it up and only loading what you need. It doesn't save any of this permanently to disk, meaning there is absolutely no disk requirement on install (although you need the space for the cache).

The Substance plugin for Unity, Unreal, etc. allows you to generate large textures at runtime, meaning you redistribute a simple graph file and not the whole texture set.

If we combined the two, you could potentially have gb's worth of large textures (4k, 8k) generated at runtime with little cost and a tiny redistribution footprint. Before you could generate Substances at runtime but you were limited to sane sizes, usually not going beyond 2k (and they didn't work with UE4 texture streaming), and the texture count still mattered, but if we combine the two we can have very large textures at a small runtime cost. Granite's footprint is like 500mb VRAM.

I don't know about you guys but I like the idea of making a game with a 500mb install and GB's worth of runtime generated content.

I'd prefer to keep my tool all in one, so because the current python api a) doesn't allow cooking sbs to sbsar with dependencies embedded and b) just calls sbsrender, i'd rather keep it all in C# and just call sbscooker and sbsrender.

When I call sbscooker with an empty file, it's fine. When I call it with any of my files or a relatively simple file from Substance Share, it says it cannot open the package.

Here's an example of what it wont read:

Content - Substance Source - Signature series nominations
 on: March 03, 2018, 08:39:02 am 
I'd really like to see this guy:

... do some substances :)

Also these guys:

I'm using a very simple python script copy/pasted from the demo, and its crashing at the parseDoc() call.

Content - Substance Source - All RDT textures gone?
 on: February 07, 2018, 01:02:24 pm 
I revisited this article:

...and wanted to download a few of them, but to my surprise none of them appear on substance source. Were they removed?

If you have an archive with one animated graph and the rest are single frame, Substance Player exports all as though they have animation.

I have a project here that when built, the substances won't build and they stay at their lowest MIP. I think it has to do with creating the asset from code rather than blueprint? The project is private - i've stripped it down to its bare minimum to show the error - who can I send it to?

Sometimes, and I can't pin it down, the substance graph instances lose their output settings on reimport. When reimporting you check for outputs by id, so it may be that the id is being changed when you reexport the substance or something. To remedy this, i've done a lookup by output name as well or id.

In SubstanceFactory.cpp, replace ReimportData with:
struct ReimportData
   FString PackageURL;
   UMaterial* OwnedMaterialReferencee;
   TMap<uint32, USubstanceImageInput*> ImageSources;
   TArray<MaterialParameterSet> ReferencingMaterials;
   TArray<MaterialInstanceParameterSet> ReferencingMaterialInstances;
   TArray<uint32> EnabledOutputUIDs;
   TArray<FName> EnabledOutputNames;
   SubstanceAir::shared_ptr<SubstanceAir::Preset> PreviousPresetData;

   ReimportData(const FString& packageURL, UMaterial* owningMaterial, SubstanceAir::shared_ptr<SubstanceAir::Preset> preset,
                TArray<MaterialParameterSet>& referencingMaterials, TArray<MaterialInstanceParameterSet>& referencingMaterialInstances, TMap<uint32, USubstanceImageInput*>& imageSources, TArray<uint32>& enabledOutputUIDs, TArray<FName>& enabledOutputNames)
      PackageURL = packageURL;
      ImageSources = imageSources;
      PreviousPresetData = preset;
      EnabledOutputUIDs = enabledOutputUIDs;
      ReferencingMaterials = referencingMaterials;
      ReferencingMaterialInstances = referencingMaterialInstances;
      OwnedMaterialReferencee = owningMaterial;
      EnabledOutputNames = enabledOutputNames;

...and line 429 with:
if (!OutputItr->mUserData && (GrItr.EnabledOutputUIDs.Contains(OutputItr->mDesc.mUid) || GrItr.EnabledOutputNames.Contains(FName(OutputItr->mDesc.mLabel.c_str()))))

... and lines 663 to 675 with:
      //Array of all of the enabled output UIDs
      TArray<uint32> EnabledOutputs;
      TArray<FName> EnabledOutputNames;

      //Save the enabled state of all of the outputs
      for (const auto& OutputItr : GraphItr->Instance->getOutputs())
         if (OutputItr->mEnabled && OutputItr->mUserData)

What the topic says, import a substance, create a material instance of something with a texture parameter and occupy it with a substance texture and reimport. It's magically gone!

Substance PainterSubstance Painter - Feature Requests - Export as sbsar?
 on: December 11, 2017, 02:36:47 pm 
I'm trying to make a game that uses substance for 99% of my textures, and i'd like to do the same for my model assets. Would it be possible to export as an SBSAR? I know at some point your amount of painted masks would make it larger than just exporting raster images, but it would still be an interesting option.

Substance DesignerSubstance Designer - Technical Support - SVG scrambled
 on: December 08, 2017, 10:39:11 am 
I've got an SVG that looks fine in InkScape, but it's somewhat scrambled in SD.

Here's the SVG:

For whatever reason, when I reimport a substance it kills some (but not all) texture references in materials. Can I send an example project to someone?

Pages: [1] 2 3