[unable to retrieve full-text content]
Substance Painter, the popular PBR based texturing application, just received a major update. The fall update comes with a completely new rendering engine resulting in better performance with lower hardware demands by incorporating Sparse Virtual Textures, which simulate large textures using less memory. The new engine also supports up to 300 UV Tiles at once enabling support for massive scenes. There are also several new tools aimed at mobile users including a new 2D viewport exporter with the ability to bake into a single high resolution texture and more.
Complete details on new features from the release notes:
- Summary: a huge boost in performance, viewport upgrades, proper 2D view export, new UI helpers, an enhanced symmetry tool and new content
- [SVT][Engine] Sparse Virtual Textures (SVT)
- [SVT][Preferences][UI] SVT hardware support acceleration option
- [SVT][Log] Additional information for Sparse Virtual Texturing feature (e.g. size disk)
- [SVT][UI] Message window at start if size on disk too low for the cache
- [SVT][Preferences][UI] Substance Painter global cache location
- [SVT] New environment variable to specify the path of the cache of Substance Painter
- [SVT] New environment variable to activate the SVT hardware support acceleration
- [SVT] Detect sparse support by hardware
- [SVT][Hardware Sparse] Raise minimum driver version for Nvidia GPU
- [SVT][Shader][[Viewport][UI] Warn user if artefacts present with Sparse Virtual Texturing at project opening
- [Anti-aliasing][Viewport] New temporal anti-aliasing filtering for 3D viewport (via Display Settings)
- [Export] Export the content of the 2D viewport as a single texture
- [Export][Dithering] Expose dithering at export
- [Layer stack] Colors on layers and folders
- [Layer stack] Quick activation and deactivation of multiple layers and effects
- [Layer stack] Easier navigation for blending modes with up down keys and mouse scroll
- [Proj][UI] Additional rotation manipulator on all three axis for triplanar
- [Proj][Shorcuts] – and + to change the UV projection manipulator size
- [Shader] Control coated layer parameters with channels in the PBR-coated shader
- [Substance] Expose new mesh-based texture inputs for filters and generators
- [Symmetry][Viewport][UI] Control symmetry offset with manipulators
- [Symmetry][Contextual toolbar][UI] New symmetry panel with options
- [Symmetry] New symmetry line intersection mode
- [Symmetry] New symmetry clone cursor
- [Symmetry][Shortcuts] Q to hide and -, + to change size and shift to snap
- [Log] Improve error messages when unable to export textures
- [Scripting] Allow to change or update the resources in Display Settings
- [Scripting] Allow to create or remove channels in Texture Sets
- [Content][Shaders] Add support for anisotropy with a dedicated shader (pbr-metal-rough-anisotropy-angle)
- [Content] Update of the preview sphere with anisotropy and modified angle
- [Content] Updated matFx shutline
- [Content] New Texturing.XYZ seamless face scan
- [Content] New anisotropic procedurals
- [Content] New filter: baked lighting stylized
- [Content] New environment map: studio automotive neutral
- [Content] New project template: PBR – metallic roughness Anisotropy angle (with anisotropy channels)
- [Content] New project template: PBR – metallic roughness Coated
- [Color Picker] Painting cursor appearing when trying to pick a color
- Crash by Selecting or Unselecting layers in a specific order can lead to crash
- Crash when pasting as an instance a layer with a mask
- [User Channel][Regression] Crash when renaming user channel
- [User Channel] Grayed brush preview
- [Alembic] Only one texture set from several materials after import
- [Engine] Exported texture differs from viewport for brush stamps
- [Engine] Invert with a level effect does not fully affect a texture
- [Material picker is applying a brush stroke while picking
- Switching resolution to 128x128px leads to a crash
- Mesh map links are not updated properly when rebaking or instancing layers
- [Substance] UserData ColorSpace does not work on Baked Mesh Normal requested as input
- MDL association mismatch when using multiple shaders instances
- [Symmetry][Fill Layer] Symmetry plane and its manipulator active in Fill Layer
- [Viewport] Pivot point for translation not always updated after clicking
- [UI] Fixed icons and removal of placeholders for HDPI monitors
- Computation freeze on AMD VEGA GPUs
- Huion tablet issue with shortcuts on Windows OS
- Anti-aliasing and shadows when active together may give unexpected results
You can learn a great deal more about this release in this blog post.
The folks over at Humble Bundle are running another bundle of interest to game developers, the Humble RPG Game Dev Bundle. It’s a large collection of RPG Maker (don’t worry, they can be used outside of RPGMaker in your engine of choice) assets including sprites, tiles, sound fx, icons and more. Humble Bundles are collections with different priced tiers, with a portion of the proceeds going to the content maker, a charity of choice (Child’s Play in this case) as well as to Humble Bundle themselves. I normally full heartedly recommend Humble Bundles to people, but this time I must give a bit of a warning due to the attached license.
From the license:
4.1. A “Licence” means that the Seller grants to GDN (purely for the purpose of sub-licensing to the Purchaser) and GDN grants (by way of sub-licence thereof) to the Purchaser a non-exclusive perpetual licence to;
(a) use the Licensed Asset to create Derivative Works; and
(b) use the Licensed Asset and any Derivative Works as part of either one (1) Non-Monetized Media Product or one (1) Monetized Media Product which, in either case, is:
i) used for the Purchaser’s own personal use; and/or
ii) used for the Purchaser’s commercial use in which case it may be distributed, sold and supplied by the Purchaser for any fee that the Purchaser may determine.
That 4.1 b is going to be a huge deal breaker for many people. If you are intending to use these assets for personal use, the license wont matter. If you are looking to distribute your works however, do be sure to go over the license with a fine tooth comb, as that clause seems to limit you to a single product, commercial or otherwise! There is a discussion of the bundle going on over on /r/gamedev if you are interested in learning more.
EDIT – An update on the licensing terms. The publisher of the assets have reached out to me on Twitter to announce they’ve heard the complaints regarding the license and are updating it to be more developer friendly. Additionally I signed up for the Humble Bundle partner program, meaning purchasing through the above link will help support the channel.
Meshroom is a new, free and open source photogrammetry software from AliceVision. Photogrammetry software enable you to create a 3D scene using a series of photographs, generally the more the merrier. Currently documentation is a bit lacking, so I’ve decided to create this quick tutorial. In this tutorial we are going to quickly walk through the process of using Meshroom using a photoset available here. That post links to a zip file containing 50 images that are confirmed to work with Meshroom. Simply extract them somewhere on your drive. Of course you need to download Meshroom, which is available for download right here. Simply download the archive, extract then execute the Meshroom application. Note Meshroom requires a CUDA GPU and works on Windows and Linux! So this process will only work on nVidia GPUs, at least as of time of writing.
Once you’ve got Meshroom loaded, follow the following simple steps.
Drag extracted images into the Images pane on the left.
Save your project somewhere
Click the green Start button.
As it’s running, you will see the progress across the top:
This bar indicates a problem occurred. You can divine more details by locating the current task in the Graph, like so:
With the node selected, check the Log (bottom right corner) for details. This is the error message you receive if you run the process on a non-CUDA (nVidia) GPU. Keep in mind, it can also be caused by the process running on a laptop with Optimus, not automatically selecting the right GPU.
Hopefully however you encounter no such errors and the process is entirely green. On the bright side, it should pick right up where the error occured if you run the project again in the same directory, as Meshroom caches the results of each step as it goes. You will find the vast majority of time is spent on the DepthMap section, this is normal. As the process continues, you should start seeing results in the 3D viewer.
You can pan, zoom and orbit the mouse using the LMB, scroll wheel and MMB respectively. More detail in the point cloud will fill in as the process runs. Once it completes successfully, you will see a button Load Model.
You can now preview the results of your effort!
A few steps in, it will have evaluated all of your photos, acceptable/usable photos will be marked with a green checkmark.
Review the remaining photos for flaws and inconsistency if you run it again.
Go make some tea… it’s going to be between 10 minutes and an hour depend on the speed of your machine. Once the process is complete, there will be a folder called MeshroomCache, with the following contents:
This is a folder with all of the output files from each step in the process. Generally what you are going to be interested in is the obj, mtl and texture file in the Texturing folder. This can be imported into your 3D modelling application of choice, the obj format is fairly universal. The resulting mesh is extremely dense and you may consider checking out Instant Meshes for optimizing the results.
Now that you know it works, it’s time to start refining the process or providing your own picture set. I would recommend the following tips from my own experience:
- use an actual camera, not a phone. I got terrible results from my Pixel phone, but my Canon DLSR gave much better results. YMMV
- DO NOT green/white screen your background. Unique markers in the background help Meshroom position each virtual camera
- try to get the entire object in frame on each shot
- get rid of any image with any blurring
So far we just default settings in the Graph Editor. This graph represents a graph of nodes in the process, one for each directory shown in the screenshot above. Note when you select a node, there are a number of properties you can edit:
You can also connect pins to multiple nodes to create multiple results. For example, if you wanted to create a set of TFF and lower resolution PNG textures, you can do the following. Right click the graph editor and select Texturing:
This will create a new node in the graph. Now drag the output node from MeshFiltering and connect it to ini and inputMesh.
Select the new Texturing node and have it create a lower detail texture set:
Now when it runs, it will create two sets of textures for you. Note there are other nodes such as Decimation that aren’t in the process by default. You can see the entire thing in process in the video attached below:
Materialize was just released for free. What exactly is Materialize? In the creators own words:
Materialize is a stand alone tool for creating materials for use in games from images. You can create an entire material from a single image or import the textures you have and generate the textures you need.
Materialize is production tested, having been used to generate metallic, smoothness and occlusion textures for the Uncharted collection. It is very similar in scope and functionality to Substance’s B2M or the free ModLab.
Essentially you start by feeding it a diffuse map, which you can then edit as you desire, then create a height map, normal map, edge map, smoothness map, AO map and metallic map automatically.
Each step of the way you have fine tune control over how each individual map is created. For example, here are the controls governing the creation of the normal map.
You also have the ability to provide your own maps from file if you have them, simply use Materialize to generate the maps that you are missing. There are also features in place for creating tiled maps. Of course to go along with all of it, there is a real-time preview of the map you are creating, including multiple skyboxes and control over the post processing effects show in the preview.
When you are done you are able to export your generated maps to a variety of different texture formats. Just an all around amazing application and one that should be added to every texture makers toolkit! Watch the video below to learn more and see Materialize in action! There are also some tutorials available here if you wish to learn more.
If you’ve recently been to the GameFromScratch tutorial series page recently you may have noticed the addition of a new Armory game engine tutorial series. It’s not actually hosted on GameFromScratch, instead it’s on our newly launched sister site (watch out, the paints still wet!) DevGa.me. Don’t worry though, nothings changed, it’s just a newer, cleaner, mobile friendly home for tutorial series, I’ll explain more about this later. For now, just be aware there is a new text and video based tutorial series on the Armory game engine under development!
Armory (or Armory3D) is a newly free open source cross platform game engine that runs inside and tightly integrates with the Blender application. If you are interested in learning more about Armory and why I’m so excited about it, be sure to check out Introduction to Armory video. The series is still quite young but already there is a fair bit to get you started. Right now the series consists of:
The entire series homepage is available here.
Additionally the video series has begun, lagging slightly behind the text series. So far videos consist of:
There is a (very small for now…) playlist available here.
DevGa.me is not a blog format and does not have any news, it’s just home to tutorials. I will however announce new tutorials here on GameFromScratch, so stay tuned! If you want to discuss the new series, there is a conversation over on the Armory discussion forums or leave a comment below or on YouTube.
If you are a pixel artist, one of the most challenging tasks you have to deal with is handling multiple resolutions and aspect ratios that your game might run at. Thankfully if you are using the newest (Unity 2018.2b3 or later) version of Unity there is now a new component that makes this job borderline trivial.
Announced in the following tweet:
The 2D Pixel Perfect package contains the Pixel Perfect Camera component which ensures your pixel art remains crisp and clear at different resolutions, and stable in motion.
It is a single component that makes all the calculations needed to scale the viewport with resolution changes, removing the hassle from the user. The user can adjust the definition of the pixel art rendered within the camera viewport through the component settings, as well preview any changes immediately in Game view by using the Run in Edit Mode feature.
Using the camera is simple, once the package is installed, it’s simply added to a camera and configure:
Your game should now scale gracefully across resolutions and aspect ratios. To see the Pixel Perfect Camera in action be sure to watch this video, also embedded below.
Last month we reported that Blender Game Engine (BGE) was being removed entirely from the source code of Blender for the upcoming major 2.8 release. Judging by the comments section this was certainly a polarizing decision, with replies basically falling into two camps. On one side there was a lot of “good riddance to bad rubbish” type replies, while in the other camp it was mostly “I’m done with Blender if this happens”. Clearly the decision impact enough people that something had to be done. Well, that something was just announced on Twitter:
The linked article from the developer mailing list:
The Blender Foundation Development Fund has reserved a number of bigger donations (also on donator’s request) for game engine and interactive 3D related features.
Now 2.8 is getting shaped up, it was time to check on this topic. Yesterday afternoon I met with Benoit Bolsee and a couple of Code Quest participants, to discuss the future of Blender’s real-time 3D needs and “interaction mode”.
The outcome is that Benoit accepted a grant to work as designer and lead developer for one year on bringing back a good real-time interactive 3D system in Blender. He will do this part-time, in average 1.5 days per week, starting July 1st.
Obviously all work and further discussions will be done in public; using our regular channels (mailing lists, code.blender.org, developer.b.o, devtalk.b.o). Help from other Blender developers is very welcome. This will be further announced when Benoit starts.
To summarise, work will first be done in two areas;
– Implement a high quality real-time viewport with physics/event handling. This should result in a pleasant & usable environment to setup and bake simulations.
– Design and prototype a new nodal logic system.
Related to this work is also to enable good support (export or some kind of integration) for external game engines such as Godot, Armory, Blend4Web, Unreal, Unity, etc.
I especially invite the first three (open source) projects to connect with us to find ways to keep a high level of compatibility.
Work on typical GE features such as super-fast drawing (LOD, etc) are welcome too but should be part of the regular work on Blender’s viewport and our internal drawing engines. That way everyone benefits. Laters,
Blender Game Engine is not coming back, but a great deal of the functionality that was removed with it will be returning. Additionally Blender will be working directly to support Blender as a game development tool for existing game engines.