Forum

Direct3D 3 renderer

Discuss programming topics for the various GPL'd game engine sources.

Moderator: InsideQC Admins

Direct3D 3 renderer

Postby leileilol » Mon Nov 29, 2010 2:04 am

When Carmack was coding D3DQuake in late '96 he ran into lots of problems with the DirectX 3 API (latest at the time) presumably due to lightmapping and having to blend that somehow, and how messy of an API it was.


How would that have looked had that actually came to something? It'd have to be vertex lit, though (like every other first-gen Direct3D game in 96)

Curiously i'm even more wondering how it would perform on the hardware of the era, i.e. Virge, Verite, Voodoo... In 2010 it's definitely a waste of time to undertake this, but this is a 'what could have been' kind of thread.

To get it looking at least like Quake should with lightmaps and overbright would need DX5/6. Add warping, and it's 8/9. It's the whole plan of Quake on DX3 I've been wondering about.
i should not be here
leileilol
 
Posts: 2783
Joined: Fri Oct 15, 2004 3:23 am

Postby mh » Wed Dec 01, 2010 12:40 am

I'd personally love to get my hands on that code, but I agree that the state of D3D at that time means that it would be historically intereesting more than actually useful.

I've actually managed to find old DirectX SDKs for 1, 2, 3, 6.1 and 7. Interestingly, D3D3 actually did have the necessary blending modes to allow multipass lightmaps (same as GLQuake without multitexture).
We had the power, we had the space, we had a sense of time and place
We knew the words, we knew the score, we knew what we were fighting for
User avatar
mh
 
Posts: 2292
Joined: Sat Jan 12, 2008 1:38 am

Postby Rich » Wed Dec 01, 2010 9:16 am

I vaguely remember that. I don't recall Carmack running into any actual roadblocks, though. I think he was mainly just complaining about the general API and the need to construct your own command buffers. Which I'd tend to agree was a pretty retarded approach for a generalized 3D API, though it's a perfectly fine one when you're making an API for an embedded system or very small fixed range of embedded devices and you want ultra-minimal API overhead.

I've seen some homebrew Dreamcast code that looks a lot like what you had to do standard for DX3 D3D. Sega wrapped it up nicely in the official SDK with the Kamui 2 API, though.
Rich
 
Posts: 35
Joined: Tue Nov 02, 2010 3:46 am

Postby mh » Wed Dec 01, 2010 10:02 am

The funny thing is that the designs of D3D10 and 11 are - when you really look at them - execute buffers all over again.

I might have a go at doing a port sometime if I can get D3D3 stuff to compile.
We had the power, we had the space, we had a sense of time and place
We knew the words, we knew the score, we knew what we were fighting for
User avatar
mh
 
Posts: 2292
Joined: Sat Jan 12, 2008 1:38 am


Return to Engine Programming

Who is online

Users browsing this forum: No registered users and 1 guest