Duke4.net Forums: PolymerRTX - Duke4.net Forums

Jump to content

  • 8 Pages +
  • 1
  • 2
  • 3
  • Last »
  • You cannot start a new topic
  • You cannot reply to this topic

PolymerRTX

#1

Hey guys,

In an effort not dereail other threads, I've decided to start a new topic on what I plan on doing next. I'm only in the preliminary stages of planning it out, and I would like to do this right this time around. When Microsoft released the DirectX Raytracing Fallback layer back in March, I began playing around with small raytracing reciepies. Nothing too crazy. Since my 1080 doesn't have hardware acceleration for denoising, I tried creating a temporal denoisor, but that yeiled shitty performance, and edge cases were you would get brief hall of mirror type issues. Regardless I'm digressing.

What I want to do is create a raytracing renderer for eduke32. The first question I'm going to get is, "what kind of hardware am I going to need to run this"?. Currently I have a build map viewer running in DXR, and in E1L1 with a single ray on my 1080 I get about 140fps at 1080p. I also ran the same experiment on a 980TI and got around 160fps(believe it or not the 980 TI is better for DXR FL then the 1080 is). What does single ray mean? Basically in a nut shell you get geometry and textures and that's it(in my experiments I didn't add textures yet, just "vertex style" lighting). No complicated lighting, reflections or AO.

Going forward with this, I don't want to be as heavy handed with the eduke32 codebase as I was in the past, which is why I don't want to shove DXR into the codebase. I'd really prefer to use Vulkan, but the Vulkan raytracing extensions aren't released yet, and Vulkan Raytracing probably won't have a emulation fallback layer, so it would require a 20xx series initially. Initially I'm thinking I develop my work in a dll that utilizes Nvidia Optix to render the raytracing buffer to a OpenGL texture, and create various hooks into Polymer to make this all work.

First pass of this I imagine of just shoving triangle soup into the BVH acceleration structures and just using the hardware raytracing acceleration.
Second Pass: I would like to get rid of all the geometry and simply raytrace against the data, you would get a more classic renderer with next-gen effects. Basically imagine a renderer that behaved like classic, but rendered with PolymerNG effects.

Anyway that's sort of my initial thoughts. Sorry for the word vomit.

This post has been edited by icecoldduke: 11 September 2018 - 08:29 AM

5

User is offline   NightFright 

  • The Truth is in here

#2

Posted Image
5

User is offline   Forge 

  • Speaker of the Outhouse

#3

glad you disappeared the last time for walking-away abandon reasons, and nothing serious or health related. Thanks for not posting anything.

maybe you can get frustrated and leave this one just before the release of Ion Maiden.
Posted Image
It'll be interesting to see what half-assembled frankenstein monster you come up with this time.
4

#4

My life over the past year has been insane, and I've told you guys that me leaving was work related, unfortunately that's only a small part of the truth. Last year my sons biological father did something really stupid that put my family in danger. For those interested I don't mind sharing a bit more specifics in private, but the end result is I moved my family over to the UK. I'm currently bouncing back and forth between the US and the UK for work(the 10 hour plane flight is just terrible, especially when your scared of flying :rolleyes: ), but that's currently as much as I'm willing to share publicly.

This post has been edited by icecoldduke: 11 September 2018 - 08:20 AM

7

User is offline   Forge 

  • Speaker of the Outhouse

#5

Well I didn't get the message, and I'm glad everyone is okay.
1

User is offline   Hank 

#6

Warm Welcome Back

Posted Image

p.s. Love flying, it's much safer than taking a shower, believe it or not. - It won't help here, just a thought.
1

#7

View PostHank, on 11 September 2018 - 02:27 PM, said:

Warm Welcome Back
p.s. Love flying, it's much safer than taking a shower, believe it or not. - It won't help here, just a thought.

Thanks! The first time over, I flew Norwegian, and they had some of the best flight attendants. This guy saw I was gripping my seat and obviously scared during some turbulence over Quebec, and he not only calmed me down, he checked on me for the rest of the flight. I later realized(don't know why it took so long) that birds actually experience turbulence as well, and that helped out a bit psychologically.

Realtime raytracing is bleed edge in computer graphics, and will require a lot of research and development into flushing out "best practices". There is no industry standard for doing real time raytracing in video games. Over the next couple of months I'm going to be trying various different methods to creating a realtime raytracing renderer in eduke32. This is going to be research and development, so in a couple months I have a path forward to submit over to TerminX/Hendricks. Tonight I will create a github that is going to be my research and development branch. It's important for everyone to know: if you want something 100% stable that's 100% playable, please stick with the eduke32 binaries, generated by the voidpoint autobuild system. If your interested in trying my research, I'll be posting binary builds like I normally would. My github will be public, and I plan on working in the public repository, so you guys can see what stuff I'm doing. Keep in mind my R&D branch will focus only on Duke3D and not Shadow Warrior.

Raytracing in realtime graphics is a huge leap forward, and really hasn't been done before. So I hope you guys will bear with me as I try things out, and come up with a solid way forward for this engine.

This post has been edited by icecoldduke: 11 September 2018 - 03:16 PM

1

User is offline   Mark 

#8

I hope the forum threads don't become a distraction like in the past. :rolleyes:

So, everyone be on your best behavior.

This post has been edited by Mark: 11 September 2018 - 03:29 PM

2

User is offline   Paul B 

#9

View Posticecoldduke, on 11 September 2018 - 03:04 PM, said:

This guy saw I was gripping my seat and obviously scared during some turbulence over Quebec, and he not only calmed me down, he checked on me for the rest of the flight


Hell i'd be scared stiff too flying over Quebec! Those crazy frenchies you just never know what kind of crap they'll try and pull. Anyway, welcome back, great to read your posts again!
1

User is offline   Hank 

#10

View Posticecoldduke, on 11 September 2018 - 03:04 PM, said:

Raytracing in realtime graphics is a huge leap forward, and really hasn't been done before. So I hope you guys will bear with me as I try things out, and come up with a solid way forward for this engine.

Yep, I will follow this thread. - The actual nVidia cards that 'officially' support Real Time Ray Tracing will hit the marked in a couple of weeks. :rolleyes:
I think most engines, are in the same boat as you.
1

#11

I've created a github for my research efforts, link is also in my signature -- https://github.com/j...ll23/PolymerRTX -- this is my active development branch, so beware :rolleyes:. There isn't anything special in there yet(just put in the EDuke32 source code), I'll let you guys know when I have stuff to show.
1

User is offline   Micky C 

  • Honored Donor

#12

Would this new renderer have full native support for TROR, as is the case with Polymer?

Also, is this something that's going to be locked into DX to the detriment of Mac and Linux, or will it be extended to support Vulcan at a later time?
1

#13

Sorry to hear about your family situation.

Glad to see you back.

Out of curiosity, can you give any updates on where your previous projects are sitting and your plans for them?

Such as:

* Shadow Warrior running in your fork of EDuke32
* PolymerNG
* EDuke32 running on the XBox
* Multi-threading
* New Shadow Warrior Episode

If your changes to EDuke32 are not going to be merged upstream, then you are still free to maintain a separate fork.
0

#14

View Postenderandrew, on 11 September 2018 - 11:10 PM, said:

Such as:

* Shadow Warrior running in your fork of EDuke32
* PolymerNG
* EDuke32 running on the XBox
* Multi-threading
* New Shadow Warrior Episode

If your changes to EDuke32 are not going to be merged upstream, then you are still free to maintain a separate fork.

Through out the development of PolymerNG I made some development choices I shouldn't have, and the end result was something I deeply regret, not working as a team with TX/Hendricks and I would like to apologize for that right now. With PolymerNG, the technical choices I made, whether or not they were right, from a technical perspective, some of them were just wrong from a broad picture point of view, and that's not going to happen again.

So lets talk about the future of what you listed above.

PolymerNG: PolymerRTX is going to deprecate PolymerNG. PolymerNG I developed using Direct3D, and I should have developed the renderer using Vulkan so it would work on more platforms. If real time raytracing wasn't something attainable right now, I would redue PolymerNG with Vulkan and call it PolymerNG2. However build wasn't originally designed with triangle rasterizaton in mind, the data is more raytracing friendly then rasterization friendly. I remember working on PolymerNG and some of your maps worked well, and others not so much. With rasterization it's a difficult task to get a fast renderer working, and meet all the rendering requirements of build. Going with raytracing alieviates all of those issues, and I believe, I can attain a classic quality renderer(in terms of stability) with next gen graphics, if I use hardware accelerated raytracing. It's the right rendering method for this engine. For the record, you guys were all justified in attacking the various approaches I was taking during development of PolymerNG, a good new render, needs to adhere to the spirit of this engine and its pipeline.

Xbox Port: I will not be continuing the UWP xbox port, for the reasons I stated above, also I no longer have an xbox. I sold our consoles, we didn't take much of anything over.

Shadow Warrior: I want to focus on one dataset for PolymerRTX, and getting that to work perfectly.

Shadow Warrior New Episode: I really miss this project, however with the free time I have right now, I can only focus one thing, and that's going to be the new renderer.

View PostMicky C, on 11 September 2018 - 08:24 PM, said:

Would this new renderer have full native support for TROR, as is the case with Polymer?

Also, is this something that's going to be locked into DX to the detriment of Mac and Linux, or will it be extended to support Vulcan at a later time?

I'd forgot how TROR works, so I'll get back to you. I want PolymerRTX to be more cross platform then PolymerNG was, however since realtime raytracing is really new, I'm stuck with DirectX raytracing(DXR) or Nvidia Optix or rolling my own compute platform. When Vulkan raytracing extensions come out, I'll jump on that immediately. However, even with Vulkan Raytracing, we will be waiting on IHV's to support those extensions on other platforms, so even if I code a cross platform renderer, we will be waiting on IHV's to complete extension support on other platforms.

This post has been edited by icecoldduke: 12 September 2018 - 02:53 AM

2

User is offline   Phredreeke 

#15

Given the use of DirectX Raytracing Fallback layer will this be Win10-only?

What about sprite clipping? There are cases where sprites are obscured by geometry in Polymost/Polymer where they aren't in the classic renderer.
1

User is offline   Paul B 

#16

View PostPhredreeke, on 12 September 2018 - 03:25 AM, said:

Given the use of DirectX Raytracing Fallback layer will this be Win10-only?


Ray Tracing is only available in Microsoft DirectX12 at the moment and I would imagine it would require an operating system and GPU that supports DirectX12, which would be Windows 10. Previous versions of DirectX won't support this new feature nor will older Microsoft operating systems. However, if he uses Vulkan, like he mentioned above then there would definitely be a lot more versatility between different platforms. I'd say it's worth waiting for Vulkan than to use a dying Microsoft project.

This post has been edited by Paul B: 12 September 2018 - 07:07 AM

1

#17

View PostPaul B, on 12 September 2018 - 06:43 AM, said:

I'd say it's worth waiting for Vulkan than to use a dying Microsoft project.

There is a huge downside to using the Vulkan raytracing API...it will require a NVIDIA RTX 2070 GPU or higher. AMD currently doesn't have any consumer hardware that has accelerated raytracing cores, and there isn't a published timeline on when AMD will ship hardware that supports either Vulkan RT or DXR.

View PostPhredreeke, on 12 September 2018 - 03:25 AM, said:

Given the use of DirectX Raytracing Fallback layer will this be Win10-only?

What about sprite clipping? There are cases where sprites are obscured by geometry in Polymost/Polymer where they aren't in the classic renderer.

These are two good questions. For the first round of research, I won't be using DXR, I will be using Nvidia Optix which supports Windows, Mac and Linux -- https://developer.nvidia.com/optix The upside to Optix is it interops well with OpenGL https://docs.nvidia...._opengl_d3d.htm which means I don't have to port Polymer over to D3D12. Basically Optix will render directly into a OpenGL texture, which is nice. The best plan of attack thus far seems to be, I create a RTX cvar in Polymer that makes it so Polymer doesn't render any 3D work. Instead I pass all the world geometry over to Optix, it builds the acceleration buffer and I create the various raytracing shaders to pass into Optix, and things should just work *crosses fingers*, but Optix really isn't used in games, Optix is mostly used by Pixar and Adobe to do there offline rendering work, so it will be interesting to see how well it works in games. The example projects work pretty well on my 1080, and faster then DXR FL(DirectX raytracing fallback layer).

Two answer your second question, initially I will be creating intersection shaders that deal with triangles, so initially PolymerRTX will have similar issues to Polymer, but I believe I can modify the intersection shaders to support build only data, then things should behave similar to classic, but that's the second phase of the project.

This post has been edited by icecoldduke: 12 September 2018 - 08:48 AM

2

User is offline   0815Jack 

#18

Hi

after reading all this I still have some questions:

1) What is the benefit for having a raytracing renderer for an 22 old game with its 22-old level geometry? Would it look good with current HRP?

2) Would it require expensive hardware? How demanding is realttime raytracing without any special hardware support?

3) Why putting any effort start with DX12 and Win10 when knowing it will be dropped anyway?


So why not creating a new multi-os vulkan renderer in the first place place and adding the raytracing stuff later when available in the api?


I don't want to discourage you but for me it looks like you are trying to achieve something that even for game studios is a real challenge.
0

#19

As I said in my previous post I'm not using direct3d 12 I'm using optix initially. Please read my post above :rolleyes:
0

User is offline   TerminX 

  • el fundador

  #20

He wants to do it because it will be fun for him to integrate new technology he finds interesting into an engine he's familiar with and enjoys working with. He doesn't need any more reason or justification for it than that.
5

#21

View PostTerminX, on 12 September 2018 - 10:11 AM, said:

He wants to do it because it will be fun for him to integrate new technology he finds interesting into an engine he's familiar with and enjoys working with. He doesn't need any more reason or justification for it than that.

I suspect it is precisely this.

I do like that Optix works on Windows, Mac and Linux. Mac OS X gets crap support for OpenGL and Vulkan, but this might be a good approach for Mac users.

Ray tracing historically is SUPER EXPENSIVE from a resource perspective. Even requiring a GTX 970 means performance regressions for most users.

I'd rather see an updated OpenGL/Vulkan renderer that builds on what we have and add features befitting the engine. Parallax occlusion mapping could take the flat maps and objects in an old game like this and make them really pop.

I keep seeing @Micky C's signature and thinking to myself, a million times yes.

Quote

Polymer wishlist: Global illumination, SSAO, Bloom, reflective surfaces, adjustable specular (wetness), volumetric lighting.


All that being said, this isn't my project. ICD is free to do whatever makes him happy.
0

User is offline   Danukem 

  • Duke Plus Developer

#22

View Post0815Jack, on 12 September 2018 - 09:42 AM, said:

1) What is the benefit for having a raytracing renderer for an 22 old game with its 22-old level geometry? Would it look good with current HRP?


That's like asking, what is the benefit of making a cybernetically enhanced tyrannosaurus rex. For those who are mad scientists at heart, the benefits are obvious.

Also, good things happen when talented people follow their passion. Objecting to this is like objecting to pure science research -- you might be surprised at the unforeseen benefits of the research.
2

#23

I think there might be some confusion on how raytracing and rasterization in terms of raw implementation. Traditionally you would build some vertex/index buffers, bind some shaders and render your pass. This process was and is very API dependent.

Let's take a look at something I wrote over a year ago on Shadertoy.

Posted Image

What your seeing a screenspace shader that's rendering geometry using signed distance fields. So instead of building up vertex/index buffers and doing all that garbage, I describe were boxes are algebraically using signed distance fields, then I can do raymarched lighting/shadows as you see in the screenshot. There is one single shader that renders this scene, and its easily portable across multiple graphics API's.

So with traditional graphics rendering, to get the above image, you would render your z-prepass, your albedo, render the shadow buffers, then render your deferred lighting pass. Instead with the above method, if the shader was data dependent, which its not, you would just render a single pass, and this shader does all the work for you. The same concept basically applies to raytracing. What I'm trying to say, is going forward, the delta between switching apps from one API to other is mostly going to be setup rather then raw rendering, since raytracing shaders are all compute based anyway.
1

User is offline   The Nate 

#24

Er... I have a GTX 1050. Will this work with my GPU? If not, will you develop a version compatible with that?
0

#25

View PostSgt Nate V, on 12 September 2018 - 12:43 PM, said:

Er... I have a GTX 1050. Will this work with my GPU? If not, will you develop a version compatible with that?

I don't know. Video card prices should be coming down for the 10xx series over the coming months(apparently Nvidia manufactured a shit ton of 10xx series, they over assumed the demand during the crypto crisis, and now NVIDIA and AiB partners are sitting on a huge surplus of the 10xx series). If the new prices are within your budget, its going to be a good time to buy GPU's.

Best hardware information I have right now(this is far from being a complete list, I will update as I know more).

RTX 2080 TBD(my card should be arriving on the 21st).
980ti/1080 - Will hold > 100 fps in 1080p with single ray hit.
1070 - Should hold framerate > 60 fps with single ray hit.
0

#26

View Posticecoldduke, on 12 September 2018 - 01:14 PM, said:

I don't know. Video card prices should be coming down for the 10xx series over the coming months(apparently Nvidia manufactured a shit ton of 10xx series, they over assumed the demand during the crypto crisis, and now NVIDIA and AiB partners are sitting on a huge surplus of the 10xx series). If the new prices are within your budget, its going to be a good time to buy GPU's.

Best hardware information I have right now(this is far from being a complete list, I will update as I know more).

RTX 2080 TBD(my card should be arriving on the 21st).
980ti/1080 - Will hold > 100 fps in 1080p with single ray hit.
1070 - Should hold framerate > 60 fps with single ray hit.

I've got a GTX 1080 because I'm an enthusiast, but most people aren't running that hardware. I suspect this will only appeal to a niche market, or it may find more users way down the road when GPUs get cheaper over the years.
0

User is offline   MusicallyInspired 

  • The Sarien Encounter

#27

You mean when the crypto bubble bursts.
0

#28

View Postenderandrew, on 12 September 2018 - 01:20 PM, said:

I've got a GTX 1080 because I'm an enthusiast, but most people aren't running that hardware. I suspect this will only appeal to a niche market, or it may find more users way down the road when GPUs get cheaper over the years.

I disagree. The RTX 2070 for example will MSRP at $499, which means after the holiday season we should see GPU's around this price(for the next couple of months, people will be paying the founders tax, so things are a bit higher for RTX cards), which should mean we should see 1080's below 399 and 1070's even lower then that. Traditionally the xx70 series has been targeted at mid-range gamers, and the RTX 2070 will have raytracing acceleration. Who knows what the adoption rate will be on the new HW though. However the 1080's should move into a more affordable range after all this clears, and that card can definetly do atleast a single ray hit. So I disagree that this will only appeal to a niche market.

View PostMusicallyInspired, on 12 September 2018 - 01:27 PM, said:

You mean when the crypto bubble bursts.

I meant for mining. Miners haven't used GPU's for mining for a while now, and NVIDIA over manufactured the 1070/1080/1080ti in anticipation for a demand that didn't exist(at least from what I read online).

This post has been edited by icecoldduke: 12 September 2018 - 01:43 PM

0

User is offline   Romulus 

#29

View Posticecoldduke, on 12 September 2018 - 01:38 PM, said:

I disagree. The RTX 2070 for example will MSRP at $499


Spoiler


This post has been edited by Romulus: 12 September 2018 - 01:54 PM

0

#30

View PostRomulus, on 12 September 2018 - 01:53 PM, said:

...

RTX 2070 MSRP is $499, FE(Founders Edition) is $100 higher for all sku's this time around, this is called the "founders edition tax", and goes back to MSRP soon after launch.

Spoiler


This post has been edited by icecoldduke: 12 September 2018 - 02:00 PM

-1

Share this topic:


  • 8 Pages +
  • 1
  • 2
  • 3
  • Last »
  • You cannot start a new topic
  • You cannot reply to this topic


All copyrights and trademarks not owned by Voidpoint, LLC are the sole property of their respective owners. Play Ion Fury! ;) © Voidpoint, LLC

Enter your sign in name and password


Sign in options