Jump to content

  • Log In with Google      Sign In   
  • Create Account


Member Since 15 Dec 2001
Offline Last Active Oct 04 2015 03:23 AM

#5244662 Vulkan is Next-Gen OpenGL

Posted by phantom on 05 August 2015 - 09:10 AM

They only said that it's coming this year. I'm also curious about who will support it. PS4, Apple etc. or will they insist on their proprietary solutions?

Apple might, but they're already doing Metal on iOS/OSX now, and they've always been slow on the OpenGL front, so I wouldn't hold my breath.

Sony already have the best API of the current offerings... They could make a Vulkan wrapper around it, to make porting easier for PC developers... But in that situation, Vulkan would be a wasteful high level API that's blocking you from low-level efficiencies laugh.png
I doubt many developers would prefer that.

Yeah, I honestly don't see buy in from anyone who already has a low overhead API happening.

Vulkan is likely to cover Windows, Linux (and related) and, as pointed out above, Android - although like OpenGL/OpenGL|ES before it I wouldn'e expect 'one code path to rule them all'.

Future landscape is likely to be;
MS platforms; DX12/DX11(legacy)
iOS/OSX; Metal
Linux; Vulkan/OGL
Android; Vulkan/OGL|ES

I'm intrigued, in a vague way, to see what happens with WebGL. It remains behind the times on features with everyone else in the GL ecosystem (iirc WebGL2 is still very much WIP) but exists in a world where Vulkan-like low level APIs don't really fit.

Although it's still very much a matter of 'when it happens...'; the other day the official VulkanAPI twitter feed posted a picture saying Vulkan was 'forged by industry', to which I replied along the lines of "forged by industry and AWOL. Less marketing BS, more specs/libs/drivers." because, for all the pretty slides, right now all we have to look at is marketing and one alpha Android driver.

(By contrast I've had a look over some D3D12 docs/examples, got a handle on the whole 'root signature' stuff and I'm making plans to write some D3D12 code on my Win10 system probably this weekend...)

#5239746 54x50 tiles map searching for neighbours - takes extremely long

Posted by phantom on 11 July 2015 - 09:55 AM

looks like this is your problem right here. you're storing a 2D array as a 1D array, then trying to do adjacency tests.  doable, but god awful ugly, slow, and complex compared to a 2D array.
store in a 2d array such as my2Darray[x][y].  adjacent squares to the square at x,y are then: x-1,y;   x+1,y;   x,y-1;   x,y+1;  x-1,y-1;   etc.

Errm... wut?

A 1D array is perfectly suited for 2D data; the look up is a simple case of id = y * width + x; which is practically the same lookup as you are doing for a 2D array.

Depending on array size, allocation strategy and walking method the 2D array could end up performing worse if it is implemented, under the hood, as T** as you have a double indirection to Whatever bit of memory.

TLDR; using a 1D array to store 2D data is perfectly sane and easy to work with.

#5239729 Help in creating a game engine.

Posted by phantom on 11 July 2015 - 07:13 AM

You need to concretely define your requirements.


The term 'game engine' is simply too broad; a few years back as part of my degree I wrote in a week or two a system which interfaced Lua with Java (course requirement on the latter) which could play sounds, draw sprites, do basic collision and have a 'game loop'.

That is technically an 'engine' - a simple, 2D engine, but with a change of graphics and a change of Lua logic it could drive another game type.

#5239573 Why Do People Use DirectX?

Posted by phantom on 10 July 2015 - 01:12 PM

Vulkan on the other hand promises to addresses all those issues (dealing with legacy/slow paths, inconsistent API between desktop and mobile).

Indeed, however as optimistic as I've tried to be about Vulkan I can't help but note that DX12 has been around for some time for people to try and has it's release in 19 days when Win10 drops - Vulkan doesn't even have a public spec, the last presentation still has 'TBD' on a few things and is still in flux as of a few weeks ago...

#5239572 Why Do People Use DirectX?

Posted by phantom on 10 July 2015 - 01:09 PM

Well, OpenGL is available for all platforms, including web browsers and there are still OpenGL games out there that run as well as ones on DirectX.

Except it isn't.

OpenGL is only on Windows, Linux and OSX. But OSX only supports up to 4.something and last I check was lacking compute shaders... also it is going to Metal so the future support is in doubt. DX on Windows has better tools and drivers so is a major win...
... also DX is used on the Xbox line of consoles for any big developer using it is a no brainer. OSX and Linux continue to be non-events in the PC gaming world.

WebGL is not OpenGL. It is also a mess. In my professional option the whole platform is a write off but that aside WebGL continues to be a mess of platforms which don't do the same thing and lack tools.

OpenGL|ES on mobile phones is not OpenGL. It is also a mess. iOS is going Metal anyway so that removes one platform and Android is a clusterfuck of broken drivers and extension hell far beyond whatever was seen on Windows.

Beyond that no console uses OpenGL either, despite what people often like to claim - as mentioned the Xbox uses DX, the PlayStation uses its own low level library, as does the WiiU and other devices.

So 'OpenGL' only exist currently on three platforms, of which one has a better solution in DX11.
You'll not be reusing any of that code on any other target.

The 'OpenGL is on everything!' is a nice myth but it is just that... a myth... it has no real basis in fact.

#5235905 Is OpenGL enough or should I also support DirectX?

Posted by phantom on 20 June 2015 - 01:39 PM

Will be means the future. Microsoft constantly obsoletes its own APIs as well, so really it is a poor decision for anyone who is not part of a big company to bother with using it.
You will be able to use vulkan on windows systems, so really there will be no point to DirectX any more.

Everyone obsoletes APIs, however D3D sticks around - DX9 was here for a long time, DX11 was announced 7 years ago, DX12 I would expect to have a pretty long life time as well as the primary windows graphics interface.

Yes, you will be able to use Vulkan, just no one knows when.
D3D12 will be here in just over a month.
Vulkan is still MIA when it comes to anything public and was last reported as 'in flux'.

So, you can start developing with an API which works (D3D11), an API which has docs, beta drivers, good performance reports (D3D12) or you can wait around for Vulkan which is being developed by the same group who mismanaged OpenGL for over a decade.

Personally I'd go with D3D, because say what you like about MS they get shit done and with the last 3 graphics APIs they have done well (D3D10 as a good, if not doomed, API) and by all accounts D3D12 is another sound result.
Khronos and the ARB (who went on to form the Khronos group for graphics), on the other hand, have historically not managed very well and are showing worrying signs of lapsing back in to the old habits which plagued OpenGL.

#5235903 Is OpenGL enough or should I also support DirectX?

Posted by phantom on 20 June 2015 - 01:29 PM

Slight thread clean up; lets keep it on topic, not call other people names or drag other unrelated topics in to this thanks.

I might start handing out warnings to people otherwise...

#5235631 Is OpenGL enough or should I also support DirectX?

Posted by phantom on 19 June 2015 - 02:16 AM

You can use it with GL too; it's only a container format and the data payload is the same whatever graphics API you are using.

Yes true, the down side is that outside of windows you'll need a third party library to load dds files or its a case of roll your own. It's a feature rich format which I wouldn't fancy creating a parser for myself. Best to stick to windows for that IMHO and leverage that particular advantage...

Yeah, but if you are using OpenGL then chances are you shouldn't be using D3DX libs anyway even on Windows if only for consistency's sake - and as others have pointed out there are a few libs out there which already read .dds structured files (also the header isn't that hard to pass for the common stuff).

Ultimately however I'd tend towards a custom header in front of the payload with just the details you need it in, which can include a custom 'type' ID so once you have parsed the DDS header during the data pipeline you can translate the various blogs into a simpler, game ready, format. However that is overkill when starting out thus why I didn't originally suggest it smile.png

#5235568 Is OpenGL enough or should I also support DirectX?

Posted by phantom on 18 June 2015 - 04:06 PM

Not just that, but in DirectX there is the dds format which can hold texture arrays, texture cubes, mipmaps, and all sorts of other stuff in one convenient container format. For directx definitely investigate it...

You can use it with GL too; it's only a container format and the data payload is the same whatever graphics API you are using.

Really .dds should be your first stop when loading game ready textures, it can handle everything you graphics card can after all.
PNG and TGA are source images and shouldn't be anywhere near your final game.

#5233887 Skydome

Posted by phantom on 09 June 2015 - 01:53 PM

Also, to eliminate any intersection with scene geometry, I don't even worry about the actual geometry/size of the skydome, I just disable depth writing when I draw it, so that everything that's drawn after the skydome will overlap it by default, even though the skydome is really just almost like a hat the camera is wearing around with a 1-unit radius.

You also burn fill rate/pixel shader instructions you don't need to, which depending on the scene could be quite a waste.

Example; you are in a town, you can see a section of sky but the majority of your view is covered in building - most of your drawing was a waste.

Sky box/sphere/plane/whatever last.

#5232581 skinned mesh triangle count

Posted by phantom on 03 June 2015 - 10:53 AM

all tests used fixed function pure device non-indexed hw vertex blending - no shaders, no effects. i've only measured a 2-3% difference in speed between all skinning methods, with non-indexed fixed function pure device hw vertex blending the slowest, and indexed HLSL the fastest. so HLSL vs HW vertex blending might increase the triangle budget for a given LOD by less than 5% at best. IE i can have an additional 750 tris on my 15K tri mesh and run at the same speed w/ HLSL - ooh and ahh! i'm SO impressed! yeah right.

You do realise that 'fixed function' hardware hasn't existed in GPUs for a good 10 or more years, right?
EVERYTHING you do on a GPU since around 2002 has been using shaders under the hood; in fact that small performance difference could be due to you using index triangles instead of non-indexed triangles, which is a bit of a non-brainer.

In short your sarcastic "I'm so impressed" is nothing more than a statement against your own misunderstanding of how to do things...

and you continue to ask bad questions; with no details about target platforms or performance levels this whole question and the performance metrics you are waffling about are meaningless... the fact you got anyone to reply to this thread to start with is amazing given the total lack of information.

#5229902 win32 cpu render bottleneck

Posted by phantom on 19 May 2015 - 02:46 PM

Yeah, I think we are done here; the OP is clearly of no mind to learn anything and I, for one, am bored of the rambling run on posts.

Xoxos; if you can come up with a coherent post/topic which gets to the point without the rambling then feel free to try and start this again. However the first sign of the attitude you've shown here and that thread will also be locked.

To be clear; rambling posts, things about your life we don't need to know/care about, unrelated observations (VST programming), claims that people are 'keeping knowledge/information from [me]' and referring to people as 'kids' in the rude and dismissive manner you have thus far shown.

Also learn some patience; 3 hours is no time for a reply and posting 3 or 4 times in a row (off topic no less) also will not get you anywhere.

#5227193 Unreal Engine UMG System

Posted by phantom on 04 May 2015 - 12:29 PM

False equivalence; youtube, facebook etc have complicated algorithms and a lot of data so that they can scan uploaded files to check to see if they are infringing on copyright or not.

UE4 lacks both the code and the data to try and make that choice thus UE4 can not tell if you made something or not.

#5226814 Unreal Engine UMG System

Posted by phantom on 02 May 2015 - 03:07 AM

UE4 doesn't know you didn't make it, how could it?
If it isn't importing then the format can't be right; check the log output as that might have more information.

#5225265 Steam's compensated modding policy

Posted by phantom on 24 April 2015 - 12:26 PM

I have a great deal of respect towards Valve but they are a greedy bunch.
Not only does a digital copy of a game cost more than a physical copy but only 25% goes to the mod authors?

As Josh Petrie says, the percentages are set by the developer; I believe Valve only take a 10% cut of the pie which is a good 20% less than the cut they tend to take for a full game.

The publisher/developer cut can apparently be reduced to zero if someone so chooses.