Page 2 of 4 FirstFirst 1234 LastLast
Results 21 to 40 of 78

Thread: WXX-Rebirth : a modern engine for Wipeout 3 Special Edition !

  1. #21
    Join Date
    Apr 2015
    Location
    France, Paris
    Timezone
    GMT + 1
    Posts
    310

    Default

    You don't seem to have been impressed that much by the CMYK shader , believe me, go grab Retroarch (there are many top CRT shaders as well in the latest build, such as Royale and so on) and play some of your favorite game, preferably with 15+ bit colors so SNES or anything beyond ... it adds quite some drama to the scene ... come back and let me know then.

    Since I posted this, a couple of color-accurate shaders for handhelds such as GameBoy Color have appeared on Retroarch, basically it's the same principle as one of the shader in the Unity standard assets but pushed to the extreme -> instead of a 256x16 pixels CLUT, it is a 24-bit CLUT so 4096*4096 and that along a nice color profile (from Photoshop) gives really subtle results. I deliberately chose the AGFA SWOP profile because it's a bit out-dated and it gives to greens, blues and magentas a whole different experience.

    Now for the shaders, I will probably pack in 2 or 3, then people will be able to extend as needed, would like to write my own CRT shader though (btw the pics already use a custom shader since Unity did not offer one that is PSX-friendly )

    also, if you know any racing game with nice camera angles, let me know so I can take a look at it and get some inspiration for my camera thanks

    EDIT: Bob's your uncle <-

  2. #22
    Join Date
    Aug 2015
    Posts
    36

    Default

    I kinda see what you did there with the CMYK shader (btw, I had to swap the texture extension from .jpg the .png in the .cg to actually make it work. Maybe a typo... ?) But I think it's not only a subjective, but also a of video chain setup matter.
    I have an nVidia GPU and a cheap TN panel. Maybe if you have an AMD card and a better display, the colors look better on your end. Regardless, when it comes to PSX games, I'm all about accurate levels (which seem to be a pain to achieve) and strong, "vibrant", yet "natural" CRT like colors... (yep, the slight cyan tint included ) If only I could find a proper gamma/tint, ("gamut compression" I think would be the best term... ?) shader for once... to closely resemble CRT colors contrast and brightness/"radiance" or however I could call it... I am rarely looking for enhancing "overall tones" in the detriment of other "shades"... Usually I aim for a clean, neutral look without tinting effects or over sharpening or HDR or stuff like that. I like everything to be "enhanced on it's own", every element to have it's own "visual power" in a defined range and not being overpowered by other visual elements... idk how to explain it better... For ex. I never use dynamic contrast or stuff like that to "enhance" the final image. At most, I'd be using slightly cooler color temp than standard.

  3. #23
    Join Date
    Apr 2015
    Location
    France, Paris
    Timezone
    GMT + 1
    Posts
    310

    Default

    There's something wrong with the commit, there shouldn't be a jpg ... The one I wrote was png and somebody pushed a commit and I accepted without really looking well... It's absolutely vital the clut does not get compressed for it to work well ... Will take a look.

    I use f.lux and that can be seen in shots. In fact it should be disabled...

    I perfectly understand your view, it's just that sometimes I want to drift a bit from neutral look and these Crt shaders while being cool are quite fuzzy in the end and it gets boring.

    Btw have you seen epsxe 2 ? They finally added shaders and there are some crt ones !

    If you have a shader you like and is not gamma enabled it's very easy to get it, raise the final color to the power of 2 and Bob's your uncle

  4. #24
    Join Date
    Aug 2015
    Posts
    36

    Default

    Yeah, I was wondering why there even were those .jpeg duplicates there in the first place
    I know about f.lux, I think there was a Windows version of it or something like f.lux on Windows but I never actually used it.
    In fact I've tried it few years ago just to see the concept in action, but never felt the need to use it on a daily basis.
    Yes, i know various tone mapping and other effects just works for some games depending on theme and I've played such games.
    For the majority of times though, for my PSX games, I just got used to their "CRT look" (too bad that I don't have a CRT any more...)
    I had to get rid of it since it was dang big and I was realistically using it maybe once or twice a year at best... I kinda regret tho...
    I know about ePSXe 2 but wasn't aware of the changes. I've mainly used RetroArch since I've found about the PSX libRetro Core.
    I recall there was Pete's OGL2 GPU plugin that was supporting shaders on ePSXe since 1.6.0 times... ? And edgbla's soft GPU plugin.
    The "issue" with those for me is that they only support one pass and you can only do so much in just a single pass...
    Since I've discovered RetroArch, nothing else satisfies me any more ) The multi-pass shader support was the ultimate feature for me.
    There's also ReShade that you could use for pretty much any game but I can only see so much use for a "final pass" solution sadly...
    Yeah, you could use that for some final tone mapping or a CRT post-process effect in OLD (PSX like old) games, but other than that,
    I don't see much use since it's messing with the UI, the fonts and all that. So unless there's prior access to the game's "shading chain",
    it's usage it's really limited imo. Also there's no CRT-Royale in ReShade yet )
    Yeah... raise to the power of two and... yeah... mhmm... sure. Should I put a comma before or afte the power...
    Sory, nicht sprechen GLSL, nein! Niet C++, niet Python, niet ASM! Nada! Je ne sais pas d'utiliser le code

  5. #25
    Join Date
    Apr 2015
    Location
    France, Paris
    Timezone
    GMT + 1
    Posts
    310

    Default

    I really don't know why there is a JPG in the commit ... I guess I've changed things after a commit, because here I don't have it. Anyway, should be the 13Mb PNG, by the way make sure you select 'Don't care' and for scaling and 'Nearest' so you retain the old blocky style rendering.

    F.lux is good at night only, obviously And yes CRT is the way to go but it's cumbersome, actually I've bought the PSIO thing to play PSX games from SD card but it needs to be soldered and haven't done it yet ... on the other hand, a mouse click on PC brings the whole access to games through Retroarch ... but the latest version is quite weird.

    here's gamma for retroarch: (right of the pic)

    2016-06-30 21_59_31-RetroArch _ FBA Cores CPS2 v0.2.97.30 __ FPS_ 59.3 __ Frames_ 256.png

    cgp

    Code:
    shaders = "1"
    shader0 = "gamma.cg"
    filter_linear0 = "false"
    wrap_mode0 = "clamp_to_border"
    float_framebuffer0 = "false"
    scale_type_x0 = "source"
    scale_x0 = "1.000000"
    scale_type_y0 = "source"
    scale_y0 = "1.000000"
    cg

    Code:
    void main_vertex
    (
       float4 position : POSITION,
       out float4 oPosition : POSITION,
       uniform float4x4 modelViewProj,
       float2 tex : TEXCOORD,
       out float2 oTex : TEXCOORD
    )
    {
       oPosition = mul(modelViewProj, position);
       oTex = tex;
    }
    
    float4 main_fragment (
    	float2 tex : TEXCOORD,
    	uniform sampler2D s0 : TEXUNIT0
    	) : COLOR
    {
    	if (tex.x > 0.5)
    	{
    		float4 color = tex2D(s0, tex);
    		float alpha = color.a;
    		float gamma = 2.2;
    		return float4(pow(color.x, gamma), pow(color.y, gamma), pow(color.z, gamma), alpha);
    	}
    	return tex2D(s0, tex);
    }
    If you're happy with the results and want to apply full screen, simply do replace

    Code:
    	if (tex.x > 0.5)
    	{
    		float4 color = tex2D(s0, tex);
    		float alpha = color.a;
    		float gamma = 2.2;
    		return float4(pow(color.x, gamma), pow(color.y, gamma), pow(color.z, gamma), alpha);
    	}
    	return tex2D(s0, tex);
    by

    Code:
    		float4 color = tex2D(s0, tex);
    		float alpha = color.a;
    		float gamma = 2.2;
    		return float4(pow(color.x, gamma), pow(color.y, gamma), pow(color.z, gamma), alpha);

  6. #26
    Join Date
    Aug 2015
    Posts
    36

    Default

    Quote Originally Posted by aybe View Post
    I really don't know why there is a JPG in the commit ... I guess I've changed things after a commit, because here I don't have it. Anyway, should be the 13Mb PNG, by the way make sure you select 'Don't care' and for scaling and 'Nearest' so you retain the old blocky style rendering.
    Yep, there is a 13Mb PNG there. And about the "blocky style", I don't really care about that. I'd use 2x internal res, but it's a pain with the shaders and with the smoothing of 2D backgrounds. The CRT-Royale goes Interlaced for ex. and other issues...

    F.lux is good at night only, obviously And yes CRT is the way to go but it's cumbersome, actually I've bought the PSIO thing to play PSX games from SD card but it needs to be soldered and haven't done it yet ... on the other hand, a mouse click on PC brings the whole access to games through Retroarch ... but the latest version is quite weird.
    Dang! You have a PSIO! (and you didn't yet installed it ) I envy u! If I've had one of those on my hands, I wouldn't stand one second without installing it. But then again... I'd never play a PS1 game on an LCD TV...

    here's gamma for retroarch: (right of the pic)

    2016-06-30 21_59_31-RetroArch _ FBA Cores CPS2 v0.2.97.30 __ FPS_ 59.3 __ Frames_ 256.png

    cgp

    Code:
    shaders = "1"
    shader0 = "gamma.cg"
    filter_linear0 = "false"
    wrap_mode0 = "clamp_to_border"
    float_framebuffer0 = "false"
    scale_type_x0 = "source"
    scale_x0 = "1.000000"
    scale_type_y0 = "source"
    scale_y0 = "1.000000"
    cg

    Code:
    void main_vertex
    (
       float4 position : POSITION,
       out float4 oPosition : POSITION,
       uniform float4x4 modelViewProj,
       float2 tex : TEXCOORD,
       out float2 oTex : TEXCOORD
    )
    {
       oPosition = mul(modelViewProj, position);
       oTex = tex;
    }
    
    float4 main_fragment (
    	float2 tex : TEXCOORD,
    	uniform sampler2D s0 : TEXUNIT0
    	) : COLOR
    {
    	if (tex.x > 0.5)
    	{
    		float4 color = tex2D(s0, tex);
    		float alpha = color.a;
    		float gamma = 2.2;
    		return float4(pow(color.x, gamma), pow(color.y, gamma), pow(color.z, gamma), alpha);
    	}
    	return tex2D(s0, tex);
    }
    If you're happy with the results and want to apply full screen, simply do replace

    Code:
    	if (tex.x > 0.5)
    	{
    		float4 color = tex2D(s0, tex);
    		float alpha = color.a;
    		float gamma = 2.2;
    		return float4(pow(color.x, gamma), pow(color.y, gamma), pow(color.z, gamma), alpha);
    	}
    	return tex2D(s0, tex);
    by

    Code:
    		float4 color = tex2D(s0, tex);
    		float alpha = color.a;
    		float gamma = 2.2;
    		return float4(pow(color.x, gamma), pow(color.y, gamma), pow(color.z, gamma), alpha);
    For some reason the original .cg with the "if" statement only works for the BIOS Boot sequence, then it's gone... I can see a darker grey stripe/shade area on the right side while the SONY Logo it's displayed, but that's kinda it...
    Once it's booted into the game, it's completely gone. After replacing the "if" statement paragraph, it's working, but it gives me a very dark image. Like I'd lower the brightness to something like 25%... Meh, nevermind...
    Even if it had worked, without "implementing it into a shader" I wouldn't have much use for it. I just can't stand the "non-filtered" blocky/pixelated look of 224/240p of PS1 games. I'd use a gaussian blur at the very least.
    I'd take a blurry mess over the blocktacular sharp ginormous pixels every time in the absence of anything better That's why I usually use the CRT Shader for low res PSX games with emulators (RetroArch)
    It "mixes"/"fuses" those huge pixels into something looking more like an actual image Granted, a very low detailed image, but at least my eyes aren't bleeding any more from the sharp edges poking into my retina.
    I think an overlayed/blended "fixed resolution mask" (same resolution as display's native one) on top of the upscaled native PSX game's pixels would work wonders. Currently, most CRT shaders are tied to game's vertical resolution.
    That's why the scanlines won't ever align/space perfectly equidistant and diffusion, bloom effects will always be distorted, since PSX's resolutions are anamorphic and 1080p for ex, never divides perfectly by 224 or 240, etc...
    But I digress...

    Some edits I've done to CRT-Royale's mask texture while I was playing PE2
    Yeah, the levels are allover the place and the contrast and colors and all...
    But the "pixels effect" it's almost decent... Not what I was aiming exactly...
    The smoothing and blending I think it's the best part. Round (almost) fonts etc...



    Zoom to 100% (1:1) to avoid downscaling distortion.
    Last edited by 80T; 30th June 2016 at 10:57 PM.

  7. #27
    Join Date
    Apr 2015
    Location
    France, Paris
    Timezone
    GMT + 1
    Posts
    310

    Default

    These Retroarch shaders are strange in regards to how they behave, I've put 0.5 which should be screen center but it's not ...

    Now what you're experiencing is normal, a better shader would account for a PC screen gamma and adjust the output accordingly because it's different for a PC screen ... but this is the formula to go from linear to 'gamma' ramp space.

    Remember that you can set or not linear/nearest in each of the passes in Retroarch, so take the one you prefer, shader logic does not interfere at all with this.

    etc ... right, we're drifting a bit from the original topic

    - - - Updated - - -

    These pics are nice, mask is too, but see there's a problem in fact with their implementation: the color smearing should occur between masks just like in a real TV and since it's not, when you use a mask the overall loses brightness while on a real TV we could say that brightness literally consume your eyes, especially in darkness

  8. #28
    Join Date
    Aug 2015
    Posts
    36

    Default

    The best part about real CRT TV's it's that it's "interlacing"/"interleaving" different colors from different "pixels" since the scanlines are thicker with brigtness and overlap, but they overlap without blurring...
    I wonder if a well thought fine grained "explosion" shader would give such effect... something like how CMYK pixels are looking layed out on a photo... There is actually an "explosion" shader in RA, but it's "rough" and too blocky...

    Some more images in the waiting for WO3 Overbrighten to Heaven and back lol...

    http://postimg.org/gallery/2lzdq7fzs/
    Last edited by 80T; 30th June 2016 at 11:22 PM.

  9. #29
    Join Date
    Apr 2015
    Location
    France, Paris
    Timezone
    GMT + 1
    Posts
    310

    Default

    Pretty cool shader !

    I think the only way to be satisfied would be to write the thing directly, there are numerous examples out there, but it has to be done

  10. #30
    Join Date
    Aug 2015
    Posts
    36

    Default

    If you're talking about the CRT-Royale shader, (since that's what I've used in all those screens, just with a modified mask texture) then yes, it's quite decent, by far the best "CRT look" approach from all I've seen so far.
    But it's far from being a very good representation. There's lots of room for improvement and I think even efficiency (it "only" takes about 14 shader passes iirc). And all the light diffusion effects are susceptible to distortion.

  11. #31
    Join Date
    Apr 2015
    Location
    France, Paris
    Timezone
    GMT + 1
    Posts
    310

    Default

    Back to the main topic now !

    Here's a video of what I've been working on lately : animated billboards



    Did capture a WO3 footage, identified and wrote the transitions all by hand

    OTOH it took quite a bit to get to this as, as I said before I cannot build anims using mouse as that would mean I've included copyrighted content, what would open doors to any copyright holder.

    So it's all done by code but since it's a grey area it took time to get to this, I ended up writing a mini framework to generate all things I needed and now that I'm hooked to Unity animation system I should be able to leverage its features. Gave a try to naive approach like blitting texture atlas directly but it eats CPU and did not address other concerns ...

    Decided to pause the work on the camera, while it works I'm not satisfied with it, so I'm focusing on other parts and maybe I'll get something better after letting it sleep for some time !

  12. #32
    Join Date
    Aug 2015
    Posts
    36

    Default

    Can't wait to see those billboards "live" And yep, the camera needs to be tackled with on a good day

    Regarding the hundreds of duplicate textures and maybe other stuff... may this be of any help... ?
    http://phoboslab.org/log/2015/04/rev...ng-wipeout-psx
    Last edited by 80T; 5th July 2016 at 04:52 AM.

  13. #33
    Join Date
    Apr 2015
    Location
    France, Paris
    Timezone
    GMT + 1
    Posts
    310

    Default

    This was the first article I read when I decided do that project, he did a great job and the web-app is appealing ... so I know that article.

    Been able to hook events to my animation system in clean way, should be able to get sounds up easily but now I need to address outer layers to not go berserk. Actually I've run a code analysis yesterday, and while I do progress slowly I have a high maintainability rate which means that I can add things relatively easily

  14. #34
    Join Date
    Aug 2015
    Posts
    36

    Default

    Nice!

    OFF: I'm wondering where everybody's at...

  15. #35
    Join Date
    Apr 2015
    Location
    France, Paris
    Timezone
    GMT + 1
    Posts
    310

    Default

    You mean people are not actively participating in this thread ?? I guess they expect the 'goods' and I too ... Whenever I have something decent I'll ask the admins whether they can add a section in the forum next to AG racing projects and it will likely gain some visibility.

  16. #36
    Join Date
    Aug 2015
    Posts
    36

    Default

    Weekly Check-In!

  17. #37
    Join Date
    Apr 2015
    Location
    France, Paris
    Timezone
    GMT + 1
    Posts
    310

    Default

    Here's a really quick report of what I've been onto:
    - finished game provider data
    - namespace and files sorted (much clearer now)
    - started looking at other parts, i.e. sound
    - the coder-friendly animation framework is now on par with features provided by Unity

    Just as last time, taking a break from the racing part and focusing on other parts -> the interface

  18. #38
    Join Date
    Apr 2015
    Location
    France, Paris
    Timezone
    GMT + 1
    Posts
    310

    Default

    Sound is up !



    The path to get to this was long and with lots of traps, but we're getting to it !

    Basically, in the unconventional way Unity is used, most of the stuff that happens smoothly using the mouse simply doesn't in code Like, why does a sound is effectively loaded but is simply silence ... at this point most of the time spent is about figuring out why it doesn't work, little really in the coding ... but over time I'll get done with this dirty low-level work and boost productivity somewhat

  19. #39
    Join Date
    Aug 2015
    Posts
    36

    Default

    Nice! Idk much about coding, but... maybe the sounds need some manual channel assigning and other params like pitch, volume, and stuff like that when you're manually trying to implement them... ? Just a thought...

    EDIT: Just found this at random...


    That CRT neon like glow effect on the highlights (billboards, windows boost pads, etc... ) Dang!
    Last edited by 80T; 15th July 2016 at 06:57 AM.

  20. #40
    Join Date
    Apr 2015
    Location
    France, Paris
    Timezone
    GMT + 1
    Posts
    310

    Default

    I will clearly attempt a CRT shader one day

    In Unity you have audio mixers (https://docs.unity3d.com/Manual/AudioMixer.html) and you effectively assign sounds to channels ... while this is easy with mouse, the problem in code is finding exactly what's needed to achieve one of the different behavior you can set with mouse ...

    Now add to this that you need to figure the order of achieving things, and since Unity is a black box (we know nothing about how things are done internally even though the classes they use are readily available) it's what's taking most of my time : figure out basic path, then specific path;

    Like for the animations, I (relatively) quickly got them up but they were blending incorrectly, I needed rough transitions ... one has to figure some tangents to have the correct behavior etc etc ... that's what taking most of the time -> research.

    And for the animation and so on, I need to write extra methods but instead of quickly coding them, I take the time to write something clean so I won't have to come back another time at the topic

    I have the situation (mostly) in hands, but as a one-man effort it just takes more time

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •