Hello! I’d like to run such petition to see how many developers needs Dx9/10 support.
I do understand next-gen game etc. but i know exactly that a lot of people are not head-off gamers they don’t buy high-end video each year and it’s a big market of low computers. I see that HTML5 cooked app in browser runs much faster that the one i build for sm4 - that’s nuts - you got that support, but we can’t bake it!
The why question is obsolete - we all know a lot of answers, but what i did today - simply gived a try for unity, that all my friends-startupers already uses and what i see is much more fps in viewport in standart scene, yes, without a lot of effects, but i’m designing another type of game it’s not just for fun. in UE i have to lower resolution with very few object to get same.
Nobody cares how good your shaders are or what an interesting gameplay you got if it’s not working on their hardware, my uncle simply deleted game from android, because something was wrong again with textures.
Don’t you understand that they play dota2, LoL, COD and CS because it’s not lagging? If all developers will have monter-GPU - end-users wont buy games, they’ll try to get GPU first so in a few years, maybe, if they remember about some laggy game, that they wasn’t able to start - they wont buy it anyway.
So i’m not asking, but i propose to think on implementing some kind of old UDK-engine support, simply to design in new editor or add dx9/10 compiler and viewport.
DX9 support won’t be coming any time soon. If you need to run a game on WinXP you can use OpenGL. But the good news is DX10 is actually supported by UE4. You can start the editor in DX10 mode by specifying -DX10 or -SM4 at the command line, and then you can actually choose to package your game with DX10 shaders as well as DX11 (which is default) or completely remove DX11 shaders. Under Windows packaging settings.
you know it’s not for me, i’ve played about 25 years, in fact i was playing PC games somewhere in '90, not counting zx spectrum - i don’t need to play, i want anyone could play the game that i produce and i feel that lots of people wil have to wait until new upgrade or new PC, and i don’t need that.
i did try to use Dx10 and opengl and result was bad for UT4, i had the same with P166 running quake without opengl support.
simple game can’t be laggy with any shaders. in fact unity uses also dx11, but they got dx9 support to render dx11 and they use SM1-2-3 and they got “hard” scenes, but i can program it to use simple models that will run on olpc, that’s what i can’t do with ue4.
and about dx10 support - after building a package i have to create a shortcut to use -dx10, because it will try to use SM5 that i didn’t built, but FPS difference between SM5 and SM4 is absent, while there’s no hard objects or many polygons with reflections and once again same project runs flawless in HTML5 behaviour.
well, yes if counting only those who plays steam that will be 2%, just all others can’t play and they don’t, comm[unity] edition? there’s not so much developers, that works for community i guess. well about my experience i’ve specially asked for a quite video with poor gaming capabilities, because i don’t want to play, i can ask and i’ll get a new one, but i want massive gameplay not just for latest GPU.
Well right now, ur only way to have DX9 in UE4 would be to write it in yourself, and this would be no easy task, pretty much the entire renderer would need to be re-written specifically for DX9 (no compute shaders what so ever) and simplified. Something Epic won’t do at this point for like 2% of users who will use it out there. Not to sound mean, its just the reality of the situation. Maybe someone will write a specific DX9 renderer for UE4, but it will most likely be a community branch (not officially supported by Epic).
I am surprised that you had such a bad experience with the DX10 side tho. I was working with a friend on a project around the 4.7 time (I haven’t tried it since then, so maybe its gotten worse). And we were surprised to find out that he was actually running in DX10 mode the entire length of the project coz his GPU was on the lower end of the spectrum, and we didn’t even notice because he was having very similar performance to me and the game looked identical. As for the OGL side, no idea how that looks, have had no need or intention to look at it.
There are plenty of developers working for the community. I myself provide a Merged GameWorks branch to the community for free. The issue is I dont think you will find many who are willing to put in the time for integrating DX9. I am looking at the feasibility of it now, but it is a fairly massive undertaking.
You can already do that, create an unlit material, provide it a texture to the Emissive slot, and create instances off of that, no expensive calculations what so ever. However your still bound to DX11, DX10 or OGL
oh, you do something? that’s nice, thanks. can you tell me then, if it is possible to bake some final simple texture from shader and use it instead? and maybe do it automatically on end-user device if he choose that, like low-poly-models.
i think that it’s a simple solution. just in theory, to simply remove some hardest part for gpu.
and if it’s possible, then maybe for author just provide some simplicity-texture-field, so it was like “authorized” no-shader-texture with ability for example to use it in ue-viewport.
if i create material now it will be used for all and i want it to be used only for player’s choice, so if they got 1k$ GPU - fine go with modern shaders.
i think you understand what i want and well, then the need is in specific cooker mechanism, runtime or whatever it’s calling.
first shader must be compiled, then put it into the model, then generate texture and save it, then replace shader with texture and disable shader workarounds.
maybe for few levels that uses different lighting textures can be switched and stored separately + change “shaders depth”
So for example if your GPU is not so hot, then you can bake some textures for grass, terrain and houses, but leave shaders for weapons and avatars. then you’ll get more fps.
then maybe in advanced mode you’d be able to change textures with shaders on the fly depending on “shader distance” and FPS range or number of moving objects.
maybe some simple AI can predict when to switch between shaders\textures
if all this can be made, then it will be a real advantage for all.
You have a misunderstanding of textures and shaders. Shaders are what are used to position and shade an object (Vertex/Pixel shaders) and numerous other things. Textures are used within shaders to give the objects specific looks, u can’t replace a shader with a texture.
But to implement a system like u want. Can be done in Blueprints. Create a fancy material and an unlit material, then keep track of whatever metrics u want in a Game instance class. When a threshold has been reached (ie. Num objects on screen, distance, etc.) swap out the fancy material for the unlit one. But again you will still be bound to whatever version of API you packaged for ie. D3D11, 10, or OGL.
yes, i thought that shaders are program based textures, that changes depending on light, reflections or other input, giving specific look for material, so i wanted to disable that code, providing stable state of texture.
and if it is possible, then i think it should be done in ue source code, giving some classes for thin managing, to define which code can be disabled (for example leaving water transparency, but without moving waves) or setting a shaders’ code queue and enabling only some rounds of it. if this code can be unloaded from main process into some parallel thread, bypassed or prioritized, then you’ll get more gpu to work with primal code.
i don’t feel myself so much proud (epic) developer to code it, i don’t like programming and someone already knows the code that can be changed for all this and i’ll spend more time to find and understand it.
UPD: i found a name for it transient-shader-control “tra.sh.control” something that our world needs,
the other may be advanced-shader-keep