• Listen to a special audio message from Bill Roper to the Hive Workshop community (Bill is a former Vice President of Blizzard Entertainment, Producer, Designer, Musician, Voice Actor) 🔗Click here to hear his message!
  • Read Evilhog's interview with Gregory Alper, the original composer of the music for WarCraft: Orcs & Humans 🔗Click here to read the full interview.
  • The Hive's 22nd Icon Contest: Creep Abilities is now concluded, time to vote for your favourite set of icons! Click here to vote!
  • ✅ The POLL for Hive's Texturing Contest #34 is OPEN! Vote for the TOP 3 SKINS! 🔗Click here to cast your vote!
  • ✅ The POLL for Hive's Techtree Contest #20 is OPEN! Vote for the TOP 3 FACTIONS! 🔗Click here to cast your vote!

WhiteoutFlakes: Warcraft III Reforged Previewer

This bundle is marked as high quality. It exceeds standards and is highly desirable.
WhiteoutFlakes Renderer — Q&A

What is WhiteoutFlakes?

WhiteoutFlakes is the standalone model viewer. It lets you preview and inspect models. It's designed to be annexed into other tools as a render service.
It currently supports the next backends:
  • D3D11
  • D3D12.
  • Vulkan.
  • WebGPU.
  • Metal (macOS only)
Currently, it requires a valid Warcraft III Reforge installation since it uses the game's shaders (bls). Open source shaders can be crafted using GitHub - FernandoS27/Wc3Shaders: A reimplementation of Warcraft III: Reforged Shaders in Slang..

What does it support?

Full support:

  • All features of Models version 800 (MDX 800 / MDL)
Partial support (Models 900+):
  • Basic rendering of MDX 900+ models is implemented, but some features are not yet supported:
  • - FaceFX
  • - Any shader that is not SD, SD_On_HD, Crystal, PopcornFX or HD — this includes Terrain, Water, Sprite, and others


Version 1.4:
  • Fixed Shadows.
  • Fixed IBL sRGB Cubemaps like Day/Night and Dungeon.
  • Added a new Storage Explorer which allows you to explore models and effects within Warcraft III's CASC.
  • Multiple models can be opened at the same time.
  • pkb files can now be opened individually.
  • Added Ambient Occlussion pass
  • Added Bloom pass
  • Added Depth of Field pass.
  • Lots of fixes for corn effects
Version 1.3b:
  • Improved support for macOS considerably.
  • Fixed crash on close with MacOS.
  • Added Metal backend for more native experience.
  • Improved styling of the the Cocoa window to match the inner interface.

Version 1.3:
  • Added new WebGPU backend
  • Warcraft III folder can be manually set in Settimngs -> IO
  • Custom MPQs and MPQ ordering can now be configured.
  • Further fixes to the UI borders.
  • MDL files can now be opened
  • Models can now be exported into MDL, 2 dialects are accepted Warcraft III's (used by the game) and Hiveworkshop (used by Retera model studio and other tools here).
  • Added a new feature to be able to export animated sequences as sequential PNG files, Animated PNGs, GIFs or Animated WebP.
  • Improved the resolution of TeamGlow on classic.
  • Improved the performance of CASC loading.
  • Improved Font rendering.


Version 1.2:
  • Added new Vulkan backend
  • Alpha support for Linux and MacOS.
  • Added 3D sound.
  • Added Dear Imgui engine shaders and reworked the UI to use Dear Imgui.
  • Fixed an issue which would turn some custom models black.
  • Improved performance considerably in taxing models.
  • We are now open source: Here

Version 1.1b:

  • Fixed camera animations not working regressions.
  • Added Crystal HD Material Rendering.
  • Fixed further sound emitters being missing.
  • Added support for playing FLAC.
  • Fixed deprecated textures not being found.

Version 1.1:
  • PopcornFX support
    • Still experimental and lacks many features.
    • Uses an emulation layer called CornFlakes! based on reverse engineering.
  • Support for Event Objects.
  • Proper DNC lighting support.
  • HDR Tonemapping support.
  • Walk simualtion.
  • NonLooping sequence support.
  • Further fixes to particle emitters.
  • Optimizations for massive scenes.
  • Fixes to Particle emitters 1 when the child models had Particle emitters 2 or Ribbons.
  • Implement Shadow cascades.
  • The renderer can now run along World Editor or even Warcraft III.
  • Fixed an issue where teamcolor layer would always be replaced by team color in HD even if the user set up.
  • Added transparent pass and basic priority plane ordering.
Version 1.0b:
  • Fixed crashes when loading path contained chinese or unicode characters.

Version 1.0
  • Initial release.

In what language is it written?
WhiteoutFlakes is written in C++20 and uses Slang as shader programming language.

Will it become a full model editor?
No. WhiteoutFlakes is a rendering service, not an editor. The goal is to achieve the most accurate possible rendering of Warcraft III models and then provide that service to other developers so they can build their own tools on top of it. WhiteoutFlakes is designed with flexibility in mind, making it easy for developers to integrate and adapt it into their own applications.

Why D3D12 instead of Vulkan or OpenGL to start?
WhiteoutFlakes uses a compatibility layer for backends, so adding new backends is straightforward. D3D12 was chosen initially in order to use the game's shaders directly. A full reverse-engineering effort for the game's shaders is underway — once that is complete, those shaders can be ported to Vulkan or other backends.

Is OpenGL planned?
No. There are no plans for OpenGL — only Vulkan. OpenGL is mostly deprecated, and the goal is for the graphics design to be shaped by modern APIs rather than legacy ones.

Will it ever be Open Source?
Yes. You can find it here: GitHub - FernandoS27/WhiteoutFlakes: A Rendering Service for Warcraft III assets

Why a standalone Model viewer?
WhiteoutFlakes was originally concepted as a realtime previewer for another tool I'm working in collaboration with DennisH. We decided to release the standaloner previewer since it ended up being very good. Additionally, unlike the liked Preview in this site. it works with a modern client.

Do I really need Warcraft III Reforged, can't I just use classic?

No, you don't need Reforged. However, if you are using the classic client; make sure it's registered in the registry.

Special Thanks to:
  • GeneralFrank - For testing his models in it and giving feedback.
  • GhostHeroine - For testing it extensively asnd breaking it at every opportunity.
Contents

WhiteoutFlakes: Warcraft III Reforged Previewer (Binary)

How'd you decide on the name?

Also, for someone like me who wants to start learning about basic model editing, how would you describe the differences between this and Blizzard's Reforged Previewer?
 
How'd you decide on the name?

Also, for someone like me who wants to start learning about basic model editing, how would you describe the differences between this and Blizzard's Reforged Previewer?
The name is based on a set of Blizzard games related tools. I started with WhiteoutLib as a reference to old blizzard's StormLib. So evry single tool coming from it has been Whiteout, WhiteoutDex, WhiteoutTex, WhiteoutFlakes. WhiteoutFlakes itself came by when I asked DennisH to get an icon for the 3ds max renderer and he gave me an icon with a window and some cornflakes looking things inside, so I called the renderer WhiteoutFlakes (and redid the icon).

About Blizzard's Preview. WhiteoutFlakes is based on the reverse engineering of the game engoine while Preview actually uses the game engine itself. So Preview will always be more accurate than WhiteoutFlakes unless we achieve perfect accuracy.

WhiteoutFlakes differs from Blizzard's Preview in this manner:
  • WhiteoutFlakes is being made as a "Service" aka a renderer that you can annex to other tools like 3ds max (see WhiteoutDex )
  • WhiteoutFlakes works perfectly with the current client, while Preview is no longer compatible with current Reforge shaders.
  • WhiteoutFlakes is designed to be portable, so it could in the future be in MacOS and Linux.
  • WhiteoutFlakes doesn't support PopcornFX or FaceFX. This is because both features use very heavy propietary SDKs which are not accessible to the public. Reverse engineering and reconstructing them is a lot of work.
  • WhiteoutFlakes is designed to be recycled for other Blizzard games,
 
Aww yiss!
However, I think I will not delete Preview.exe yet because it supports rendering PopcornFX.

There seems to be an ORM rendering problem. For some ORMs, I packed them without an alpha channel (for lighter size), and in the material I configured the Team Color layer to also use the texture in the Diffuse layer. While this approach works fine in the game, WhiteoutFlakes seems to ignore the Team Color texture that I used in the material, and uses a solid color texture instead.
1777301260095.webp
 
Last edited:
Aww yiss!
However, I think I will not delete Preview.exe yet because it supports rendering PopcornFX.

There seems to be an ORM rendering problem. For some ORMs, I packed them without an alpha channel (for lighter size), and in the material I configured the Team Color layer to also use the texture in the Diffuse layer. While this approach works fine in the game, WhiteoutFlakes seems to ignore the Team Color texture that I used in the material, and uses a solid color texture instead.
Could you pass me the model or send it over PM? I'd like to have a look.
 
Also, the CASC storage cannot be opened by this app if WC3 or WE is open. So you can't have this app with full functionality and WE open at the same time.
Both of your issues have been fixed. On this new release.

New Release 1.1:
  • PopcornFX support
    • Still experimental and lacks many features.
    • Uses an emulation layer called CornFlakes! based on reverse engineering.
  • Support for Event Objects.
  • Proper DNC lighting support.
  • HDR Tonemapping support.
  • Walk simualtion.
  • NonLooping sequence support.
  • Further fixes to particle emitters.
  • Optimizations for massive scenes.
  • Fixes to Particle emitters 1 when the child models had Particle emitters 2 or Ribbons.
  • Implement Shadow cascades.
  • The renderer can now run along World Editor or even Warcraft III.
  • Fixed an issue where teamcolor layer would always be replaced by team color in HD even if the user set up.
  • Added transparent pass and basic priority plane ordering.
 
Last edited:
Both of your issues have been fixed. On this new release.

New Release 1.1:
  • PopcornFX support
    • Still experimental and lacks many features.
    • Uses an emulation layer called CornFlakes! based on reverse engineering.
  • Support for Event Objects.
  • Proper DNC lighting support.
  • HDR Tonemapping support.
  • Walk simualtion.
  • NonLooping sequence support.
  • Further fixes to particle emitters.
  • Optimizations for massive scenes.
  • Fixes to Particle emitters 1 when the child models had Particle emitters 2 or Ribbons.
  • Implement Shadow cascades.
  • The renderer can now run along World Editor or even Warcraft III.
  • Fixed an issue where teamcolor layer would always be replaced by team color in HD even if the user set up.
  • Added transparent pass and basic priority plane ordering.
Aw yiss! Anyway, I think I've found another issue, albeit minor:
  • The camera picker doesn't use the animated Translation/Rotation values configured inside the model's camera.
 
Aw yiss! Anyway, I think I've found another issue, albeit minor:
  • The camera picker doesn't use the animated Translation/Rotation values configured inside the model's camera.
weird that works on the campaign screens.

EDIT: confirmed regression.

EDIT2: Fixed
 
Last edited:
Version 1.2:
  • Added new Vulkan backend
  • Alpha support for Linux and MacOS.
  • Added 3D sound.
  • Added Dear Imgui engine shaders and reworked the UI to use Dear Imgui.
  • Fixed an issue which would turn some custom models black.
  • Improved performance considerably in taxing models.
  • We are now open source: Here
 
What do you mean model lights have been broken?
Can you show an example?
You can try again with the model I sent in my earlier post here:
Previewer shows that the lighting is different between Portrait 1 and Portrait 3, but this lighting change doesn't show up with Flakes.
 
You can try again with the model I sent in my earlier post here:

Previewer shows that the lighting is different between Portrait 1 and Portrait 3, but this lighting change doesn't show up with Flakes.
Ahh right, it's a portrait. Try changing lighting from Ingame to Glue or Dynamic. I still haven't added Portrait DNC.

It would be great if you can evolve this tool into an editor.
Also i didnt see an option to set the path of the MPQs of the game from which textures are are used. maybe you only rely on registry which can be an inconvinience.
Yeah currently I use the registry. I can add that.

On the editor thing, well in the source code, next to the viewer there's a Max plugin.
 
Nice viewer and good to have. Using the game's shaders itself is an interesting way of having pixel perect accuracy.

Just some minor feedback:
  • The download includes the 3 OS versions, perhaps this could be split into 3 downloads?
  • The orientation indicator has its text flipped.
View attachment 591259
The hiveworkshop only lets me post a single bundle. So I can only pack all 3 into one.

Anyways, new version:
Version 1.3:
  • Added new WebGPU backend
  • Warcraft III folder can be manually set in Settimngs -> IO
  • Custom MPQs and MPQ ordering can now be configured.
  • Further fixes to the UI borders.
  • MDL files can now be opened
  • Models can now be exported into MDL, 2 dialects are accepted Warcraft III's (used by the game) and Hiveworkshop (used by Retera model studio and other tools here).
  • Added a new feature to be able to export animated sequences as sequential PNG files, Animated PNGs, GIFs or Animated WebP.
  • Improved the resolution of TeamGlow on classic.
  • Improved the performance of CASC loading.
  • Improved Font rendering.

EDIT: It seems Animation Frames Export is semibroken in WebGPU. Use D3D12 or Vulkan for the time being.

Some really cool feature there is the Animation Baking:
infernal_stand_1.webp

gyrocopter_death_1.webp
 
Last edited:
Just thinking how to use this to make a composite custom campaign screen turned all to .webm. I need it for Classic/SD though.
Classic/SD is fully supported. Warcraft 3 1.27 sadly doesn't support webp unless you plan doing SD/Classic stuffs for Reforged client.

What you could do if you want to do an animated render in Classic is output the sequences as .png, use WhiteoutTex to convert them to BLPs and then use a Screen Model with a flipbook texture id animation for showing the animation.

EDIT: For longer videos, it may be better to actually generate proper videos and make the Wc3 engine play the videos. I think thast for Warcraft 3 Classic Blizzard uses AVIs with DivX codec, if I recall correctly. Use the PNG sequences to feed them to a video editing tool like Shotcut.
 
Last edited:
New version:

Version 1.4:
  • Fixed Shadows.
  • Fixed IBL sRGB Cubemaps like Day/Night and Dungeon.
  • Added a new Storage Explorer which allows you to explore models and effects within Warcraft III's CASC.
  • Multiple models can be opened at the same time.
  • pkb files can now be opened individually.
  • Added Ambient Occlussion pass
  • Added Bloom pass
  • Added Depth of Field pass.
  • lots of fixes for corn effects.
 
The shaders are next to the exe, if you just copied the executable over the old version, you'll be using the old shaders.
Oh the "shaders" folder, yeah I already updated it. I made sure to overwrite everything in the old folder with files from the new version.
 
The hiveworkshop only lets me post a single bundle. So I can only pack all 3 into one.
On the right side of the "Contents" part is an "Add resource" button which allows you to upload additional resources to the bundle. That way you can add separate downloads for each OS.
 
Back
Top