• 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!

⚙️ New Model Viewer (BETA)

Archian

Site Director
Level 69
Joined
Jan 1, 2006
Messages
3,211
frontpagebannenewmodelviewerr-webp.595424


Thanks to @BlinkBoy, we've added a brand-new model viewer for Warcraft 3 models, and it's a big step up in how accurately your models are shown. You can switch to it with the "View in 3D (beta)" link on any model.

image1-webp.595426
image-webp.595425

What's better
  • Built on real game rendering: the new viewer is powered by WhiteoutFlakes, which is based on reverse-engineering the actual Warcraft 3 shaders and engine. Models look much closer to how they appear in-game.
  • Proper lighting: model lights are now actually rendered, including the in-game day/night sun and ambient light, plus an HD environment probe for reflections. The old viewer only used a single fixed light, so lit models looked flat.
  • Real-time shadows: models now cast shadows for a more grounded, in-game look.
  • More accurate ribbon emitters: trails, banners and ribbon effects are emulated much more faithfully.
  • Faithful particles and effects: it uses the same PopcornFX-style particle pipeline and game shaders (HD, terrain, foliage, crystal, distortion, sprites) with proper HDR tone-mapping.
  • Smarter HD/SD handling: the viewer detects whether each model is HD or SD on its own and loads the correct textures, even for attached/child models.

imagea-webp.595427
imageb-webp.595428

How it works

The classic viewer was a WebGL reimplementation of the game's rendering, close, but always an approximation. The new viewer goes deeper: it's built by closely reverse-engineering Warcraft 3's own shaders and rendering, then running that through WebGPU in your browser. Because it follows how the game actually draws things rather than guessing at it, lighting, shadows, materials, particles and ribbon effects all come out far closer to what you see inside Warcraft 3 itself.

classic2-webp.595421
classic1-webp.595420

Requirements — PLEASE READ

This viewer needs a modern browser with WebGPU and GPU acceleration, so make sure you've updated your browser to the very latest version. WebGPU runs on top of OpenGL, Vulkan, Metal or D3D11, so if your machine can run Reforged, it can run this. Best results are with Chrome, Edge and Safari. Firefox-based browsers currently have weaker performance and are more stable on their Nightly builds. If your browser doesn't support WebGPU, you'll see a notice, just keep using the classic viewer, which still works everywhere.

Please note that there are still some inaccuracies and let us know if you encounter any as PopcornFX has a lot of inaccuracies.

forbanner-webp.595422
forbanner2-webp.595423




It would mean a lot for @BlinkBoy if the community STAR the project on
GitHub:


(Please note you have to be logged in to star it)

 
The beta viewer doesn't work properly for me on mobile*.

I hope the old viewer will remain available in perpetuity, as I saw nothing wrong with it 🙏

*perhaps because my browser is 4-5 years old...but there's no way I'm about to update to an AI-bloated version or change what browser I use just for Hive, js
 
How accurate is it to say that you need the latest version of a browser?
I am somewhat uninformed but I've seen GPU acceleration mentioned as a passing mention for a looooong time and WebGPU I had to look up but I can find google documentation as of Google Chrome 140 which is almost a year old.
edit: Chrome ships WebGPU | Blog | Chrome for Developers Chrome 113 apparently has it enabled by default, this blog post from Google is from 2023

It's a bit of a silly remark but I feel like it makes it sounds more high tech and more demanding than it probably is.
 
How accurate is it to say that you need the latest version of a browser?
I am somewhat uninformed but I've seen GPU acceleration mentioned as a passing mention for a looooong time and WebGPU I had to look up but I can find google documentation as of Google Chrome 140 which is almost a year old.
edit: Chrome ships WebGPU | Blog | Chrome for Developers Chrome 113 apparently has it enabled by default, this blog post from Google is from 2023

It's a bit of a silly remark but I feel like it makes it sounds more high tech and more demanding than it probably is.
It needs WebGPU which is mostly stable in the very latest versions of the browsers.

In general, I picked WebGPU over WebGL mostly because WebGL is deprecated and a rewrite to WebGPU would be inevitable. Also the shading language I use, slang, has active support for wgsl targets while glsl es 300 is mostly deprecated. That would have meant rewriting the shaders for WebGL.

if you want to use the viewer without upgrading the browser. At WhiteoutFlakes I released a desktop app.
 
Last edited:
navigator.gpu.requestAdapter returned null.

On mobile (chrome, samsung galaxy s22÷). Not sure if its supposed to support mobile viewing, not a great incompatability message though

Works on desktop, but the initial load was so slow for me that i got a page unresponsive popup. Then as i was using it i got a 'This tab is using extra resources, to improve perfomance let Chrome make it inactive' popup
 
I get an error on Firefox 152.0

View attachment 595438

This means WebGPU is not enabled or firefox is stubbornly picking your weak iGPU. WebGPU Report Tells you which GPU it's picking. If it's picking your iGPu or says not supported. You may need to force firefox to run with your discrete GPU. This can be done in NVIDIA Control Panel for NVIDIA users.

Thank you BlinkBoy for this great work !

Some options in material layers are not handled correctly, for example in my model Dark Soldier the team colored part is not rendered properly.
The old viewer handled them correctly.

Also, the team color list does not inclue the black (neutral).

Works well on Opera.
It will be fixed in the next version. We hjave some SRGB - RGBA mismatches in Classic models that cause some colors to look off.
 
This means WebGPU is not enabled or firefox is stubbornly picking your weak iGPU. WebGPU Report Tells you which GPU it's picking. If it's picking your iGPu or says not supported. You may need to force firefox to run with your discrete GPU. This can be done in NVIDIA Control Panel for NVIDIA users.
Yeah, that fixed it. Awesome.
 
I'm still getting navigator.gpu.requestAdapter returned null.

Given that I figure reverse engineering the Reforged render visuals was impossible without AI, will Hive also sponsor/support an AI reverse engineered version of the game so we don't have to deal with the original anymore at all? There are some like GitHub - corepunch/open-realm: Open-source reimplementation of the Warcraft III game engine, written in C. Loads and renders original game assets directly from War3.mpq (v1.0–v1.29b), targeting Linux and macOS. that I think are in progress but a full scale one that had all features implemented might be even better.

I'm not here to be anti-AI, at my job everything is AI now and I think I spent the last two weeks just prompting the AI to do my job like I'm supposed to. But previously in order to render the Warcraft 3 models we needed like 7 years of labor of community from an extremely dedicated person. Now that we can basically instead just do it with AI, I don't really understand why we can't AI replace the game itself too. Probably also the map editor -- not sure if HiveWE adopted AI yet in order to get 1 to 1 feature parity with the original game but if it didn't, it might be worth getting an AI to build an exact replica of the Reforged world editor that we could maintain as a community.

Is no one else tired of dealing with the official clients? Are they more tired of dealing with the Hive's View in 3D than of the official clients? Who is deciding the direction of our labor?
 
Is no one else tired of dealing with the official clients? Are they more tired of dealing with the Hive's View in 3D than of the official clients? Who is deciding the direction of our labor?
Hey man, just recently got back to playing wc3 and got eager to try mapping/modding and I totally agree with you, having a open-source engine kept by community with free access to game code to mod as much as you want and keeping a p2p multiplayer community would do wonders, I'm also used to AI in work now and even tho I despise it, is the best tool to allow people that either doesnt have time or the knowledge, but have the passion to work on personal projects and put their vision into life.
reverse engineering the game would be awesome.
 
While I'm not anti-AI, I'm not about to trust anything written in C by it lol. That's just asking to get hacked.

Coincidentally, the thing you linked has already had at least one vulnerability discovered: fix: remove unsafe exec() in g_spawn.c by orbisai0security · Pull Request #44 · corepunch/open-realm
That's something you can find in a lot of legacy software nowadays. Many C codebases, including game clients, have memory safety issues because writing large amounts of unsafe code without introducing bugs is extremely difficult.

These kinds of bugs can happen regardless of whether the code was written by AI or by a human. The important part is having proper review, testing, and auditing.

Also, just because a vulnerability exists, it doesn't automatically mean it can be easily exploited or that it is even interesting to an attacker. A user-space bug in some random application is a very different thing from a remotely exploitable vulnerability in a privileged component.


What I do not understand though is why they picked C over C++ or Rust for a multigame engine.
 
Back
Top