What does "Use high-DPI display" ACTUALLY DO ???!!!

Discussion and feedback on Construct 2

Post » Sat Dec 27, 2014 12:35 am

Manual:
Use high-DPI display:
Some devices have a much higher resolution display, with more dots per inch (DPI) than other devices. Setting this property to Yes will use the full resolution of the device for maximum display quality, although this can sometimes reduce performance. Setting to No will treat the display like a traditional low-resolution display, which reduces detail but can improve performance.


That is A LOT OF WORDS but what does it ACTUALLY DO ?

Say I have a 1920 by 1080 Screen and I create a project that have a window size of exactly 1920 by 1080.

What will setting Use High-DPI display to "No" do ?
Will it automatically lower res the whole thing and then blow it up again ?
If it does that what exactly is this "mythical" low resolution that it scales down to ?

Say I have a 1920 by 1080 screen and I create a game with a window size of 1280 by 720.
What will setting Use High-DPI display to "Yes" do ?
Will it scale up using a different algorithm compared to setting it to "No" ?

Even worst, what if you have a 1280 by 720 mobile screen and your project window size is 1920 by 1080 and what would setting Use High-DPI to either Yes or No do ?

There is no explanation as to what this simple dropdown list actually do in the background.

What does it actually do ?
B
12
S
3
Posts: 288
Reputation: 1,694

Post » Sat Dec 27, 2014 3:38 am

I would guess this only makes a difference for high-DPI displays (aka: display with a lot of pixels for a relatively small surface), where the result may be in the order of being a detail, so I guess for devices with an awfully large resolution for a really small surface setting it to no could improve performances at a cost of the graphic quality.

as for the mythical low res, I would guess it would be the actual width and heinght divided by the "DevicePixelRatio" (I looked that expression inside the manual page of the browser object

"The number of physical display pixels per CSS pixel. This can be a useful indicator of display density. For example, 'retina' displays report the value as 2, whereas ordinary displays report the value as 1.")
Game design is all about decomposing the core of your game so it becomes simple instructions.
B
53
S
22
G
18
Posts: 2,122
Reputation: 17,123

Post » Sat Dec 27, 2014 4:37 am

Actually, it is a bit unclear in the manual. I had to do a little experiment to find out.

Basically, if you have BOTH high dpi support AND high quality scaling enabled, games will render at native resolution if the browser they run in is 'zoomed'.

For example, you can 'zoom' into a page in chrome or firefox, which will scale all the page elements up. I imagine that high-dpi devices generally have their browsers default to high zoom settings.

There should be a more technical explanation of this in the manual. It could be helpful/hurtful on normal devices as well, assuming a zoomed browser window.
Don't lose your work. Backup your game with Dropbox.
B
44
S
10
G
10
Posts: 1,106
Reputation: 9,202

Post » Sat Sep 05, 2015 3:22 pm

I know that this thread is quite old, but I figured that I could share my experiences anyway. Frowm what I have gathered I believe this option I actually overrides the browser's "device pixel ratio". scaling the project to pixel ratio: 1.

For those who do not know how pixel ratio works I will try to explain it as simple as possible. Today many mobile phones have really high pixel density. The LG G3 has a resolution of 2560x1440 on a 5" display. If webpages were viewed with the pixelratio of 1, meaning that normal 12px text would be rendered as 12px. that would make it super tiny and unreadable. Instead a pixel ratio is assigned to browser/device in order to scale it according to the ratio. LG G3 has a pixel ratio of 3, meaning that 12px text will actually be rendered as 36px, same scaling will be carried out on pictures and web-elements.

The tricky thing with construct is that the canvas is assigned to the "windows size", let say you use 1024x768px on the project. The LG G3 will scale the canvas 3x, even though it will still be rendered in the full screen size, resulting in a resolution of 341x256.... Making the whole game look very low res.

I could be wrong with technicalities, but this is my experience of the option.

The trouble I'm having is that I can't actually achieve decent frame rates on the LG G3 with the "use high DPI display"-option set to yes. The only way is to have one or two layers, which is very different from the 12 layers I am currently using. :)

I would actually love to have this option within the game's graphics option, But I'm guessing that is pretty much impossible as it changes the way the canvas is initialized? Any ideas would be of great help though! Otherwise I need to create a new thread about that in the future.
Currently working on "Unsung" - an open world platform adventure for PC and Consoles. follow me on Instagram :D
B
18
S
2
G
2
Posts: 51
Reputation: 1,237

Post » Wed Aug 23, 2017 5:09 am

g3nki wrote:I know that this thread is quite old, but I figured that I could share my experiences anyway. Frowm what I have gathered I believe this option I actually overrides the browser's "device pixel ratio". scaling the project to pixel ratio: 1.

For those who do not know how pixel ratio works I will try to explain it as simple as possible. Today many mobile phones have really high pixel density. The LG G3 has a resolution of 2560x1440 on a 5" display. If webpages were viewed with the pixelratio of 1, meaning that normal 12px text would be rendered as 12px. that would make it super tiny and unreadable. Instead a pixel ratio is assigned to browser/device in order to scale it according to the ratio. LG G3 has a pixel ratio of 3, meaning that 12px text will actually be rendered as 36px, same scaling will be carried out on pictures and web-elements.

The tricky thing with construct is that the canvas is assigned to the "windows size", let say you use 1024x768px on the project. The LG G3 will scale the canvas 3x, even though it will still be rendered in the full screen size, resulting in a resolution of 341x256.... Making the whole game look very low res.

I could be wrong with technicalities, but this is my experience of the option.

The trouble I'm having is that I can't actually achieve decent frame rates on the LG G3 with the "use high DPI display"-option set to yes. The only way is to have one or two layers, which is very different from the 12 layers I am currently using. :)

I would actually love to have this option within the game's graphics option, But I'm guessing that is pretty much impossible as it changes the way the canvas is initialized? Any ideas would be of great help though! Otherwise I need to create a new thread about that in the future.



Excelente explicação, me ajudou muito, Obrigado... ;)
B
5
S
1
G
1
Posts: 2
Reputation: 829

Post » Wed Sep 06, 2017 12:38 pm

wmnjunior wrote:Excelente explicação, me ajudou muito, Obrigado... ;)

Happy I could be of help wmnjunior. If you want to try out pixel ratio scaling on your computer you can actually use ctrl+scroll in chrome. once you reach 300% you get the same grainy pixel ratio that of a mobile with 3x pixelratio (provided your monitor is of the same resolution). Perfect if you want to preview what your graphics will look like with "Use high-DPI display"

@ashley, perhaps it would be great to rename this option to "High-DPI Pixel Ratio" with a clear discription of what the option actually does.
Currently working on "Unsung" - an open world platform adventure for PC and Consoles. follow me on Instagram :D
B
18
S
2
G
2
Posts: 51
Reputation: 1,237


Return to Construct 2 General

Who is online

Users browsing this forum: Darknessed, Lorvin and 6 guests