UTCS UD - Development Thread

Here are some screenshots I took:

2 Likes

Those textures had light reflection in shader function?

PBR, Physically Based Rendering:

Something that we don’t have working yet in the current 1.3 renderer, but that Trem may have in the near future :wink:

2 Likes

Current progress. I still don’t know how to create and/or write proper shaders.

Photos are created with all new graphical features what are implemented in the engine.

  • Bloom, PBR, new HDR, new FXAA, new lighting model system, lens flare, new parallax mode, new specular mode, SSAO, SSGI, 
 etc. etc. etc.
4 Likes

Original map for the Tremulous (any version)

Map for the Unvanquished game

My latest work

4 Likes

Holy shit, is all i can say to this.

2 Likes

No more updates at least for this milestone of the engine :slight_smile:

4 Likes

09/11/2018 - 23:24 (GMT+1) Dushan signed out from map.

5 Likes

3 Likes

@TheDushan the post before this last one looks nice, but these last 3 shots look like i drank too much whiskey
 what fx are making things look depth of field-y / oily paint-y?

3 Likes

Let’s try this again.

3 Likes

I would like to say THANKS to @yalt for sharing the map source files with me and allowing me to create all this

3 Likes

Hmm? I normally like work from TheDushan (OpenWolf etc.), but honestly these screenshots
, erm, they don’t really look well imo. Were they meant as a joke? Or is this really the actual state of Tremulous second renderer?
@TheDushan I know you can do cool rendering stuff, wasn’t there some fancy Crysis-like underwater screenshot/video of your renderer somewhere around?
The renderer2 had some serious issues in the past, but at its current state we can make real nice maps for renderer2 (with cascded sun shadows etc.)
 Probably Tremulous renderer2 isn’t up to date, normally the new renderer should work well.

2 Likes

These are probably tests of the rendering capabilities, heavily exaggerated so that every little mistake in the code is obvious. But to be honest, these actually do look better than e.g. Unvanquished, which in my opinion simply looks boring


2 Likes

Ah okay, thanks for the answer! I just asked because currently I’m also working on the renderer2 and I wanted to know if there is something to fix here. Well, your new Tremulous project looks veeeeery promising to me!

@Toku & @lamefun , actually all of the screenshots that @TheDushan have been posting are not renderer2. Renderer2 makes use of features from OpenGL2 and some from OpenGL3. It does have a lot of nice more advanced improvements than the old Tremulous renderer, like specular and normal mapping, work on sun shadows, work on the sunlight, improvements to dynamic lighting, etc.

The screenshots @TheDushan has been showing is from the new OpenWolf engine that we will be working on switching to for the next major version after Tremulous 1.3. OpenWolf’s renderer goes way beyond what renderer2 has to offer, @TheDushan has been working on full implementation of OpenGL4 features. He has features such as physically based rendering (pbr), and tessellation, overhauled shadows from all lighting, dynamic skyboxes, and much much more. It also scans what features your system can support, and automatically disables the features your system doesn’t support. Additionally he has been working on optimizing the performance with all of the fancy advanced features enabled.

As @lamefun suggested in his previous post, @TheDushan has been testing out the most extreme aspects of the available features to work out bugs, and take the renderer capabilities as far as he can take it. It is probably safe to say that this renderer will be the most advanced one available for any idtech3 based game available so far. From what I have seen personally from initial tests so far in-game, this renderer looks comparable with even latest commercially available game engines like UE4 and id Tech 6.

Still, something that I think @TheDushan should consider is implementing a Vulkan backend instead of OpenGL4. We were a bit hesitant on that since at the time there weren’t any Open Source options for supporting Vulkan for macos, but now there is for both macos and iOS:

Vulkan is suppose to have all of the feature capabilities of OpenGL4, but with better optimizations, additionally Vulkan is intended to be OpenGL’s successor.

4 Likes

Ah, well, sounds promising!
Btw, your current renderer2 already has physics based rendering (WIP, we need proper assets)): https://github.com/GrangerHub/tremulous/blob/master/src/renderergl2/tr_init.cpp#L1151

All in all there are only three different idtech3 renderers I am aware of, the one from Robert Beckebans ((ET)Xreal → OpenWolf. Than the one from SmileTheory (James Canete), as part from ioquake3 project (which is also based upon Xreal) → this is your current renderer2, and finally the one from kungfooman: https://github.com/KILLTUBE/libwebgame_idtech3
All in all we are more or less bound to anyone of those three. It would be nice if you will introduce another one.
On the other hand it’s also a bit sad that only Spearmint and Tremulous kept the renderer2 from ioquake3, which is capable of many more features people aware of. Unfortunately there are not much people that make assets for the new renderer. Btw, the (cascade) shadows are faster than Xreal’s real time shadowing, which Xreal completely lacks of.
ETLegacy also switched from ioquake3’s renderer2 to the original ETXreal renderer. The original ETXreal renderer has a few advantages (features) and also a few disadvantages (fog is broken, coronas are missing etc.).
Do you guys want to keep the current ioquake3 renderer2?

4 Likes

For Tremulous 1.3, we intend to keep renderer2 available at least as an option, if another alternative becomes available to try on the current ioquake3 based engine 1.3 uses, we can certainly try it without having to give up renderer2, since there is a cvar for switching between the renderers.

Recently someone that goes by the name suijingfeng on github has been working on a Vulkan version of ioquake3’s renderer2, and I’ve heard that he intends to submit a pull request back to ioquake3 when he’s done. I tried porting some of his work to Trem 1.3 as an exercise to get an idea of what it’s like, although my implementation is very buggy and incomplete: Vulkan Renderer for Trem 1.3 .

As I understand it, and @TheDushan is welcome to correct me on anything, and/or elaborate, the new renderer on the latest OpenWolf ( GitHub - TheDushan/OpenWolf-Engine: Heavy modified idTech3 engine , note that repo is not fully up to date, @TheDushan has been doing a lot more work on it since, that he hasn’t pushed publicly yet), is loosely based on ioquake3’s renderer2, and does make use of various pieces from Xreal, etlegacy, idTech 4, from other foss sources, and a lot from @TheDushan’s previous work on OpenWolf in the past, but it has a large amount of original work that @TheDushan has been working on since.

True, it does have some kind of support for pbr in the code, but it is very untested, and it probably needs more work even once assets are made for it. But the new renderer in the OpenWolf engine does have full working support for pbr, as can be seen in these screenshots of the Vega map taken on the OpenWolf engine:

4 Likes

Okay, I can’t say anything about TheDushan’s work if his repository isn’t up-to-date. Well, we’ll see

Eventually he should really talk to kungfooman, this guy really made pbr look great: idtech3 + playcanvas = win (pbr gltf testing and some sky/cube-maps) - YouTube. I tested his engine and it runs really fast (unfortunately the whole game isn’t much Q3 anymore, but thats just my personal issue).
One day all those coding gurus should work together!
BTW: current vulkan for ioq3 supports none of the renderer2 features afaik, at least when I tested the project. I don’t know how supporting VAOs and how to port stuff to vulkan :frowning:

3 Likes

@Toku Technically with code everything is correct. It’s just a new effects what are on top of the texture. It’s called “texture cleaning” and “expanding dark surfaces” .

Along with that effects on provided photos from bigger tech’s are also “Screen Space Shadow”, “Deferred Rendering”, “Screen Space reflections”, “Screen Space Directional Occlusion”, " Horizon Based Ambient Occlusion (along with effects what are inherited from ioQ3 renderer (cube mapping 
).
As you can see on the new pictures what I published and posted here.

With new effects

and without new effects

I didn’t documented or told anyone until now about all this. User or client can choose does he want that or not. It’s matter of choice. Simple as that :slight_smile:

Personally I like that effect, but I am not forcing people to use it.

`wasn’t there some fancy Crysis-like underwater screenshot/video of your renderer somewhere around?

There is :slight_smile:

On the provided photos is active full PBR (Physically Based Rendering) with 2K (2048 x 2048) textures (real PBR textures (Albedo map, Gloss map and inverted nY for the normal map), and because of that pictures and effects look different then what people are use to with “normal” (Diffuse/Bump/Specular) mapping.
If Google search cannot help and explain between difference I can :slight_smile:

Okay, I can’t say anything about TheDushan’s work if his repository isn’t up-to-date.

I didn’t update code at the GitHub for few months, but I will eventually :slight_smile: .Reasons for not doing that is just that how I see all this story and whole idTech3 scene is that no-one is interested and everyone is the critic without asking or want to update knowledge of something new.
If anyone else can do better, can create better, I am here.

I am sorry if textures are not correct, I don’t know how to properly re-texture map, and because of that reason I ask for forgiveness :slight_smile:

Because of that reason,with my latest revision I have introduced possibility to overwrite and override map default conditions. Of course like in last 9+ years nothing is documented and until now only I know how it works.

It’s really simple. With now common map files (mapname.world (that is updated BSP file format), mapname.cm, mapname.bullet) you as map maker get “mapname.env” file.
In that file you can add/edit/move all class names what are inside map source “mapname.map”

this is my initial testing of the feature

{
	"message" "OVERWRITE TESTING!"
	"classname" "worldspawn"
}

When game load map, engine will check if new “.env” file is present and override “classname” what is hard-cored inside the compiled map.

Logic behind all this is really simple.
There are people who don’t know how to create maps, and don’t want to learn (I am one of them) but they would like just to add/edit some small things there. With this system we are on the middle between idTech3 engine and idTech4 engine.

5 Likes