jpd002 / Play-

Play! - PlayStation2 Emulator
http://purei.org
Other
2.16k stars 264 forks source link

Mipmapping, LOD and post-processing efects. #375

Open ADormant opened 8 years ago

ADormant commented 8 years ago

PCSX2 has a long standing problem with the lack of mipmapping and post-processing emulation. Will Play emulate them?

escape209 commented 8 years ago

PCSX2 has mipmapping emulation, just not in its hardware renderers, though I'm sure that's what you meant.

fuel-pcbox commented 8 years ago

@DPersonalized Which is fucking stupid. I mean, I'm sure mipmapping wouldn't have been THAT hard for Gabest to implement.

jpd002 commented 8 years ago

Supporting mip-maps is in the plans. I haven't looked at them much though and I have no idea why they aren't supported in PCSX2, so, it might be difficult to support them using current desktop/mobile rendering APIs for some reason I don't know about yet.

ADormant commented 8 years ago

@jpd002 In case of GSDX it's texture cache that is the problem. Perhaps @gregory38 and @gabest11 can elaborate more about PS2's mipmapping an GSDX texture cache.

Here are mipmappings from PSP, Wii, PS3 and N64.

https://github.com/gonetz/GLideN64/commit/7f6d7e2772bf9dbf5fc7c66d0bdf8f5a9e74f274 https://github.com/gonetz/GLideN64/commit/e4fa0b571761089738cf8b493247639365efa24d https://github.com/gonetz/GLideN64/commit/74afd9f1149dfc65e3da145d3427157cd4e34e98 https://github.com/gonetz/GLideN64/commit/d0c8750759713f43ea5929926bd7138b5e4a0c53 https://github.com/gonetz/GLideN64/commit/2199dd4290440362b62c09850c169f012d2bd508 https://github.com/gonetz/GLideN64/commit/5f42da74cdc8c92f99b996fb61430a6688513e62 https://github.com/gonetz/GLideN64/commit/d95103d3d1241865ac8a189f8d9cc404a0d9bfce https://github.com/gonetz/GLideN64/commit/5f73ebccb173baa2e6316c21a9369199db1fd410 https://github.com/gonetz/GLideN64/commit/5464a434ea34d8862df3602f78279e918528e7b3 https://github.com/gonetz/GLideN64/commit/a84006ce5f6b4a3aa88eae16a3b5f4f40dbba932 https://github.com/gonetz/GLideN64/commit/7f5cbe9e912304853a9431527939523d5fd380a8 https://github.com/gonetz/GLideN64/commit/35ea6f28fb29ab41077ab86760ef1ed161386edd https://github.com/gonetz/GLideN64/commit/2edc1bb8e0f50289af37e2a3d9bee463788c8a62 https://github.com/gonetz/GLideN64/commit/7d51a7eb7500d71e31d51fab45ea21bf7aa8960d https://github.com/gonetz/GLideN64/commit/5af46b47ade420975d2b0fd2f3616cef2bf7acee https://github.com/gonetz/GLideN64/commit/3f7d868f9e902e956249bc5267d50f40471acb25 https://github.com/gonetz/GLideN64/commit/3f7d868f9e902e956249bc5267d50f40471acb25 https://github.com/gonetz/GLideN64/commit/a3ddc4ce3e33b2303643ea106303c8025cac156f https://github.com/gonetz/GLideN64/commit/e685cbc83c7d13aca9d02c6289f736203eaf5e9c

https://github.com/RPCS3/rpcs3/commit/178d0e0e85be08f2b1a9ef792bfc7bc243b47fe9 https://github.com/RPCS3/rpcs3/commit/eda3c9084e2a3656fd71c5a33bca42f44253891c https://github.com/RPCS3/rpcs3/commit/dbcddcf5e23c9e434b7be80f929156214379db30 https://github.com/RPCS3/rpcs3/commit/ad3e50f90fb28cc8ce497a7f19b691fa895a30d9

https://github.com/hrydgard/ppsspp/pull/6907/files https://github.com/hrydgard/ppsspp/pull/3540/files https://github.com/hrydgard/ppsspp/pull/1787/files https://github.com/hrydgard/ppsspp/pull/1162/files

https://github.com/dolphin-emu/dolphin/pull/2160/files https://github.com/dolphin-emu/dolphin/pull/1885/files https://github.com/dolphin-emu/dolphin/pull/2162/files https://github.com/dolphin-emu/dolphin/pull/1785/files https://github.com/dolphin-emu/dolphin/pull/1872/files https://github.com/dolphin-emu/dolphin/pull/1924/files https://github.com/dolphin-emu/dolphin/pull/1147/files

gregory38 commented 8 years ago

@ADormant Could you please some spamming people. My mailbox is fill of user that want feature X or Y. That why feature such as mipmapping aren't implemented on GSdx (and others priority too).

The biggest issue of mipmapping is that someone ought to do it. I think a naive implementation will be enough for game that requires it. However it will be a pita, if games render some stuff inside a layer (or others GS rendering). So globally just adding the parameter layer will be enough and a couple of sampling in the shader. It would however be bad for performance. GSdx converts the texture on the CPU to the linear format, mipmap will increase the number of texel to convert.

ADormant commented 8 years ago

http://gliden64.blogspot.com/2014/10/mip-mapping-emulation.html