-
Re: OpenSauce Post Processing
Don't see why not, the plan is to let effects take place either after the scene is rendered, after the hud is rendered or after the ui is rendered. Which should be changable in the shader itself.
Also, just a small update on the new tags, I can now read shaders from map caches' and apply them :). Still got to get extra bitmaps working though. Some shaders will still be external so that they can be tested and applied globally.
I've currently got two tags for post processing, shader_post_process and shader_post_process_collection. The first is where the shader code is and where your variables are defined, with the second referencing the first and having the effect definitions.
-
Re: OpenSauce Post Processing
Quote:
Originally Posted by
Warsaw
Any chance we can have an option to toggle whether or not the effects apply on the HUD? I like the glow effect I get on the lines, since it makes it look more like a real HUD would.
If you like the glow effect for just certain parts of the hud:
http://t0.gstatic.com/images?q=tbn:o...-finalised.gif PHOTOSHOP, you can just edit it in, easier than editing the engine for a glow :-3
-
Re: OpenSauce Post Processing
Well, not really, considering you'd have to decompile all your maps and recompile them with the new bitmaps, which would be a silly thing to do :P.
-
Re: OpenSauce Post Processing
Alpha build in first post.
I need feedback on stability, performance, etc. as well as any visual oddities that haven't already been found. General opinions are good too :P.
I didn't put everything I could have in the first post so if you need to know anything feel free to ask.
Enjoy :downs:.
-
Re: OpenSauce Post Processing
Is the FPS supposed to be locked at 25 or does it eat performance that much?
-
Re: OpenSauce Post Processing
Oh btw why not just detect the settings of the globals. That way the person can just define the values in cheApe and change them dynamically.
-
Re: OpenSauce Post Processing
Quote:
Originally Posted by
Jelly
Is the FPS supposed to be locked at 25 or does it eat performance that much?
Just checked this out, open up shaders\PP_MotionBlur.fx and find 'int blurSamples = 48;' then change 48 to 16. Should boost your FPS somewhat (You'll still have a drop from your normal FPS though as it is an expensive effect).
Quote:
Originally Posted by Dwood
Oh btw why not just detect the settings of the globals. That way the person can just define the values in cheApe and change them dynamically.
...what? I don't get what your refering to.
-
Re: OpenSauce Post Processing
Quote:
Originally Posted by
FireScythe
...what? I don't get what your refering to.
nvm
-
Re: OpenSauce Post Processing
since OS goes through some engine limitations, can we get some aa action?
-
Re: OpenSauce Post Processing
Quote:
Originally Posted by
boogerlad
since OS goes through some engine limitations, can we get some aa action?
Please, do explain. e: nvm he meant anti-aliasing
-
Re: OpenSauce Post Processing
Quote:
Originally Posted by
boogerlad
since OS goes through some engine limitations, can we get some aa action?
Nope, i've tried in the past but Halo just doesn't like it. Plus, this isn't really breaking any limitations in the engine, it just adds to what is already there.
-
Re: OpenSauce Post Processing
Update 27\01\10
So, after the MASSIVE response from the last release i've changed\added\removed a bunch of code for another release :D.
>>Download<<
Included in this release:
The OS d3d9 DLL
Updated shaders
An example tagset of putting post processes into a map (damnation_pp)
An already compiled damnation_pp
Latest build of usertool
New tag definitions and tag_groups.map
Source
Changed:
- All custom DxWrapper code has been moved to its own GBuffer component, which just smartens things up and makes more sense.
- In the hopes of better performance the (now) GBuffer only outputs depth into a 32bit single channel floating point texture, with velocity and normals going into two, two channel 16bit floating point textures. The normals z value is no longer stored as it can be calculated on the fly.
- There are no longer any changes made to halo's vertex shaders as the GBuffer now only uses two of its own vertex shaders. Also steps have been taken to reduce unneeded rendering whch should boost performance.
- Motion blur now works best if its amount is left as 1.0
- ZEnable, ZWriteEnable and StencilEnable no longer need to be set to false in the shader
Added:
- All post process shaders now use a tesselated quad when rendered. External shaders use a 5x5 quad while internal shaders can have their quad defined in the shader_post_process_collection tag. This could theoretically increase performance, however it does mean that....
- Shaders now require a vertex shader to function.
- An addition which could be used for any OS endevour, not just post processing, is the os_bitmap tag. As reverse engineering Halo's bitmap loading system is beyond me i've take the route of creating my own simple bitmap tag which can store any texture type in most of the directX formats. The usertool build included provides the way of compiling your own os_bitmaps.
- I've also added another tag to the set which is the shader_post_process_instance tag, which allows you to override values set in a shader_post_process tag without having multiple copies of your shader in the map cache.
- Also added is a Post Processing menu option to the OS menu which allows you to toggle internal effects, external effects and motion blur.
- The current HUD scale is now accessible at shader level so shaders that rely on the HUD can now scale appropriately.
- The GBuffer normals now include BSP normal maps.
Removed:
- The dodgy object velocity in the previous build has been removed until such a time that I know how to implement it properly.
- All fake HDR code has been disabled as it sucks ass. Might be put back in if I can think of a better way of doing things.
Fixed:
- The HUD can now be disabled with no ill effects.
- Alpha tested models (trees/bushes/etc) now render to the GBuffer correctly.
- For render points 0-2, the black flash when picking up active camouflage is gone.
TODO:
- In the shader_post_process_collection tag, effects now have "not active when zoomed" and "not active when in a vehicle" flags but these have not been implemented yet.
- Find a pointer to the current far clip distance and expose the value to shaders.
As a side effect of using my own vertex shaders for the GBuffer rather than adding code to Halo's shaders, i've decided to expand the shader replacement code so that you can edit the shaders externally. I've decompiled and saved all of Halo's vertex and pixel shaders, which you can edit and recompile with usertool. This will create two files, "vs_replacements.vsr and "ps_replacements.psr" which will be read by this build of OS and replace Halo's shaders with your edited ones. It's a bit experimental but it should work fine. Halo's pixel and vertex shaders are >>here<<. Just extract the folders into the shaders folder if you want to edit them.
-
Re: OpenSauce Post Processing
Cool.
now just add the FOV hack and I'll download this :P
-
Re: OpenSauce Post Processing
Nice work. I only understand about half of your post, but I can imagine the amount of work that you put into this project. :)
-
Re: OpenSauce Post Processing
Quote:
Originally Posted by
FireScythe
- Find a pointer to the current far clip distance and expose the value to shaders.
I actually have the render frustum near and far documented already, I just didn't include it in the public code (due to something it was being used for). I might be able to work something out for you though
I'll take a look at this stuff here in a little while :)
-
Re: OpenSauce Post Processing
With your bitmap thing... Let's make a custom widget tag so we can have custom-resolution widgets... and make a better ui.map file. (have an include folder for bitmaps of each map so we can see pictures of them mb mb?) Writing up ideas and how that would work for that now.
Also, I think, in order to simplify things we should consider combining our two Open Sauces so people can use both yours and my Open Sauce at the same time. (Could produce some seriously neat things with that :D)
Downloading to take a look at it now.
-
Re: OpenSauce Post Processing
it seems that when I run Halo with the usertool executable in my root folder, Halo will throw an exception error. When I rename the usertool to a non-executable file then Halo will start fine but all the textures except flags and some wall markings are completely black. When I then try to run pp_load it gives me an exception error.
This does not occur when open sauce is disabled.
EDIT: Seems it was caused by motion blur. Setting motion_blur_enabled 0 fixed it, but I obviously don't have any motion blur.
-
Re: OpenSauce Post Processing
I had the same problem as Jelly.
I'm trying to change the pp effects referenced in the shaders reference file but when I load/unload it's only loading bloom
-
Re: OpenSauce Post Processing
I'll have a look into the motion blur problem. Out of interest what graphics card do you have?
Also, you can turn things on and off in the yelo menu (F7). You don't have to use the console unless your changing your effects file while in game :downs:.
Quote:
Originally Posted by Dwood
I'm trying to change the pp effects referenced in the shaders reference file but when I load/unload it's only loading bloom
Make sure you are changing the Count value, and putting the correct index in the brackets when adding/removing effects.
Code:
[Effects]
Count: 3 <<< ding ding!
[0]
Name: DOF
Indicies: 2
Render Point: 2
[1]
Name: VISR
Indicies: 1
Render Point: 2
[2] <<< ding ding!
Name: Bloom
Indicies: 0
Render Point: 2
-
Re: OpenSauce Post Processing
Lol yeah. :P you need a better way of declaring the active post-process effects so people can manipulate them more actively... like being able to disable an individual effect or something like that.
E: I'm running an ATi 4850
-
Re: OpenSauce Post Processing
The ingame switcheroo isn't meant for constant toggling of effects, it's there to 1) provide global effects that are set once and used all the time, and 2) provide a testbed so that developers can rapidly test their shaders without having to recompile their maps and restart Halo for every tweak.
-
Re: OpenSauce Post Processing
-
Re: OpenSauce Post Processing
Quote:
Originally Posted by
FireScythe
The ingame switcheroo isn't meant for constant toggling of effects, it's there to 1) provide global effects that are set once and used all the time, and 2) provide a testbed so that developers can rapidly test their shaders without having to recompile their maps and restart Halo for every tweak.
Considering we do have to turn off halo (pp_unload and then changing the settings file's effects, then typing pp_load doesn't work) it's still a lot of work just to add a simple change in the effects that a person wants to have displayed... I also see a possible implementation of my numpad thing with PostProcessing so we can possibly disable and enable individual effects. In fact, I think I'm going to add my numpad to PP so I can use both.
I can already think of some sick sp levels that combining my little thing with Post-Processing would work amazingly with.
Also, my problem with motion blur isn't related to Usertool at all. Just the effect itself.
e: Oh and there's some other stuff I didn't mention.
-
Re: OpenSauce Post Processing
What happens when you pp_load? If your previous effects return then there's something wrong in your settings file, in which case post it up and lemme see.
-
Re: OpenSauce Post Processing
Nvm, it works just fine. I think that it's just one shader takes precedence over another some times.
-
Re: OpenSauce Post Processing
Is there any chance of an FOV hack being enabled as well with this?
-
Re: OpenSauce Post Processing
Do you mean changing your FOV? Because thats a default part of OS2, accessible by pressing F7 ingame.
-
Re: OpenSauce Post Processing
Quote:
Originally Posted by
FireScythe
Do you mean changing your FOV? Because thats a default part of OS2, accessible by pressing F7 ingame.
Perhaps he wants a 3p view in OS.
-
Re: OpenSauce Post Processing
First thing that would need to be fixed is the third person targeting...
-
Re: OpenSauce Post Processing
I'm considering adding 4 more blocks to the shader_post_process and instance tagsso that float2/3/4 values can be changed in the tag rather than in the code, but this would break any current shader_post_process tags that are around. So, if anybody has any desperate need to save their shader (if say, you've compiled your shader and no longer have the source) then let me know, and I can whip up a quick conversion program.
-
Re: OpenSauce Post Processing
Something you could easily do is just export the tags, add blank tag block fields (eg, their name plus zero count) for those 4 new tag blocks, then reimport. vola
-
Re: OpenSauce Post Processing
That works ok for all the basic tag fields but it doesn't export the text/binary data. Shouldn't be a problem tbh, as long as the shader hlsl code is backed up somewhere.
-
Re: OpenSauce Post Processing
Update 06\02\10
New build with stuff in it :neckbeard:.
>>Download<<
Changed:
- Error messages when loading shaders will now only show in devmode.
- The base post process code is now a bit more generic, with the motion blur and internal/external shader systems acting more like add ons.
Added:
- New fields have been added to the shader_post_process and instance tag to allow setting of float2/3/4's in the tag.
- Now that custom functions are working i've added 5 new ones. Although sapien crashes when compiling scripts while custom functions are present, so no real use yet.
- The shader version of every shader is now checked, so that if an effect uses a shader version beyond what the graphics card supports it won't be used.
- Internal effects can now be faded in and out with the new functions mentioned previously.
- Dynamic floats can now be a random value.
Fixed:
- Zoom and vehicle restrictions for internal shaders are now implimented.
- Black screening now only occurs for shaders using render point 4 (post menu). Might end up just removing this render point.
I've messed around with the motion blur, in the hope that it will now work for those who had problems previously so i'd like to know if that problem still occurs.
The new functions that have been added are as follows:
- pp_set_effect_active - Turns an effect on or off.
- pp_set_effect_fade - Sets an effects fade amount. Can be set to fade over time.
- pp_get_effect_index_by_name - Get the index of an effect by searching for its name. Case sensitive.
- pp_get_effect_current_fade - Gets the current fade amount of an effect.
- pp_get_effect_is_valid - returns true if an effect is ok to use, otherwise false.
The included damnation_pp now has an effect called "Red Pain" which is disabled by default, and will be disabled when zoomed or in a vehicle. Other effects will be disabled when in a vehicle. Just there to play around with the new functions and restrictions.
-
Re: OpenSauce Post Processing
Someone should just make an external hs compiler that checks for syntax or has an external definitions file.
-
Re: OpenSauce Post Processing
You seem to have linked to the usertool zip file FireScythe.
-
Re: OpenSauce Post Processing
-
Re: OpenSauce Post Processing
Motion blur still gives me a black screen, and I had to remove my old yelo settings files after installing the new version because Halo kept exceptioning on startup.
-
Re: OpenSauce Post Processing
I also get the black screen, but I found out I can just press F7 then bring up the FOV changer and it goes back to normal.
-
Re: OpenSauce Post Processing
Quote:
Originally Posted by
Con
I also get the black screen, but I found out I can just press F7 then bring up the FOV changer and it goes back to normal.
Uhhhh, Fire, did you include the fov/settings fix in this? The one where it fixed the bug where it would initially set the FOV to some lolvalue basically making it as if the player was zoomed in 100000000x?
-
Re: OpenSauce Post Processing
Quote:
Originally Posted by
Kornman00
Uhhhh, Fire, did you include the fov/settings fix in this? The one where it fixed the bug where it would initially set the FOV to some lolvalue basically making it as if the player was zoomed in 100000000x?
Oh, so that's what that was. Heh. I'd forgotten about that bug.
-
Re: OpenSauce Post Processing
Quote:
Originally Posted by
Kornman00
Uhhhh, Fire, did you include the fov/settings fix in this? The one where it fixed the bug where it would initially set the FOV to some lolvalue basically making it as if the player was zoomed in 100000000x?
I was sure I had :ugh:, and i can't repro that bug here. It was just removing a redefinition of an int32 and removing the default setting intialisation from Initialize() wasn't it?
E: In CameraFov.inl that is.
-
Re: OpenSauce Post Processing
Still gives the black screen as well.
-
Re: OpenSauce Post Processing
Nvm, Firescythe knew the error I stated.
-
Re: OpenSauce Post Processing
I don't really know how to compile dll's, would you mind uploading any changed files?
Also, how exactly do you load the effects?
I tried pp_set_effect_active pp_visr and it did nothing.
-
Re: OpenSauce Post Processing
Quote:
Originally Posted by Pyong Kawaguchi
Still gives the black screen as well
It's been established that this is an old FOV bug, where you go ingame and change your FOV to fix it.
Quote:
Originally Posted by Pyong Kawaguchi
I don't really know how to compile dll's, would you mind uploading any changed files?
Also, how exactly do you load the effects?
I tried pp_set_effect_active pp_visr and it did nothing.
The most recent DLL is included in the last build. To set up external effects you edit the PostProcessingSetting.txt to add an effect that uses the PP_Visr shader. Like so:
Code:
[Shaders]
Count: 13
[0]
Name: PP_Bloom
[1]
Name: PP_VISR
[2]
Name: PP_DOF
...Other shaders...
[Effects]
Count: 3
[0]
Name: DOF
Indicies: 2
Render Point: 2
[1]
Name: VISR
Indicies: 1
Render Point: 2
[2]
Name: Bloom
Indicies: 0
Render Point: 3
After saving the settings file you can either restart Halo or open the console and use "pp_unload" then "pp_load" to reload all external post processes using your edited settings file.
The halo script/console commands for changing effects can only be used with maps that have tag based effects compiled into them, such as the damnation_pp map included in the most recent build.
I should point out that apart from the bloom shader (which you would typically want to be always on), the other shaders included are only really meant to show what kind of things can be done using the post processing extension so that map makers can see what they can do with their maps. Although, in the case of the VISR effect, that would be better suited as a coded subsystem to allow more control than Halo script would allow.
-
Re: OpenSauce Post Processing
Will there be a way to load specific Pp shaders without them being in the map itself in the future, via console.
e: I'm using the latest build and changing the FoV did nothing to get rid of the black screen.
-
Re: OpenSauce Post Processing
I have no plans to put console commands in to manipulate external effects myself, since I only intended for them to be used as always on effects and as a quick tesbed for developing internal map effects. Though saying that, if someone else was to add such commands to turn external effects on and off in future I have no problem with that.
If anybody's interested, shaders aren't applied directly to the scene, they are applied through an effect object that can have a chain of upto 32 shaders to create more complex results, which means that a command to toggle en external effect would still require the effect to be defined before hand in the settings file. Applying individual shaders such as PP_VISR.fx on the fly would be ill advised.
As far as the black screens concerned......:gonk:.
-
Re: OpenSauce Post Processing
Im using the HD5850 as my gpu, I wonder if they process motion blur differently?
-
Re: OpenSauce Post Processing
ATi 4850. Perhaps you're using something in the motion blur that is Nvidia specific? idk what though.
-
Re: OpenSauce Post Processing
I need to determine whether it's specifically the motion blur thats the problem, or if its the render point that is the problem. So if someone with the problem could do the following that would be helpful :).
1. Download >>this<< and extract the two files into your shaders directory (its a settings file and a red tint shader). Backup your settings file if needs be.
2. Start up halo and turn off motion blur using "pp_motion_blur_enabled 0" in the console.
If the screen is tinted red then it's a motion blur specific problem, if it stays black then its a render point problem.
-
Re: OpenSauce Post Processing
Any way to create a 3D effect with your knowledge? I know the official stereoscopic way is to render a left and right eye image into one frame, which I'm not sure if OS would be capable of. However, I wonder if you might be able to use your depth perception techniques to create a "ghost" of all objects on the screen, which would then be colored red or blue for the left or right eye. The "ghosts" would have their offsets from the original objects determined by the distance from the player. And hey, no specialized hardware required!
This is probably a longshot because I don't even know if ghosting every piece of geometry at different sizes and offsets would work, but I thought I'd throw this idea out there. There is a graphics driver available for 3d that you need to buy to use, and I'm not even sure just how stable it is compared to real official drivers.
3D driver: http://www.iz3d.com/compatible
http://www.youtube.com/watch?v=frL7rKyNQIg&hd=1
http://www.youtube.com/watch?v=RYtb38mXk_A&hd=1
-
Re: OpenSauce Post Processing
I think you'd have to render the scene twice from two viewpoints then merge them together into the 3d effect.
-
Re: OpenSauce Post Processing
Actually, I don't think it would be that difficult. Rendering the scene twice is easy, just catch each draw call, draw the geometry for the left eye, set the render target to a different one and draw the geometry for the right eye. Once rendering is done, use a post process to take the two images and create the 3D image. The only difficult bit would be changing the world view projection used to render the geometry to create the two different eye positions (which is put into vertex shader float4 constants c0 to c3).
-
Re: OpenSauce Post Processing
You mean calculate the new projection point or set it? Because calculating is easy.
-
Re: OpenSauce Post Processing
I mean the calculations (i'm not particularly good with math). Getting and setting the WVP is simple.
-
Re: OpenSauce Post Processing
Well calculating should be easy (if an angle is given). Vector..Skalar Product to project a second vector via an angle, done.
-
Re: OpenSauce Post Processing
Have you attempted to enable bump maps on things other than the bsp at all? oh and ill test your debug thing tomorrow.
-
Re: OpenSauce Post Processing
I have and as far as I can tell, even though a non BSP model can use shader_environment shaders the game does not put the normal map from the shader into any texture sampler, unlike for BSP's where sampler 0 has the normal map in it. Therefore i'm guessing it would require alot of work to first get the textures needed available to the shaders, and then a rewrite of ~115 pixel shaders to correctly use it, without breaking each shaders intended functionality (colour masking, self illumination, etc.). This is purely speculation though.
-
Re: OpenSauce Post Processing
Quote:
Originally Posted by
FireScythe
I need to determine whether it's specifically the motion blur thats the problem, or if its the render point that is the problem. So if someone with the problem could do the following that would be helpful :).
1. Download
>>this<< and extract the two files into your shaders directory (its a settings file and a red tint shader). Backup your settings file if needs be.
2. Start up halo and turn off motion blur using "pp_motion_blur_enabled 0" in the console.
If the screen is tinted red then it's a motion blur specific problem, if it stays black then its a render point problem.
Would someone mind doing this please? It would help narrow down the problem.
-
Re: OpenSauce Post Processing
I'll do it now.
e: screen was completely red for both times, but when I alt tabbed and alt tabbed in, it became an overlay, rather than just red.
-
Re: OpenSauce Post Processing
And so the plot thickens...thanks for the help, from the sounds of it there's something wrong with the texture input to the shaders, since the red shader has nothing to do with the motion blur area. You say that alt tabbing out then in caused the scene to reappear tinted? So in theory if you turn on motion blur at that point it *should* work (if you try this and its hard to tell, put the motion blur amount to something crazy "pp_motion_blur_amount").
-
Re: OpenSauce Post Processing
I alt tabbed back into the game with motion blur enabled and it didn't change anything.
-
Re: OpenSauce Post Processing
Update 25\02\10
Another day...another build.
>>Download<<
Changed:
- GBuffer shaders are now compiled into a single, uneditable file.
- Post process fading shader is now compiled into an uneditable file.
- Replacement shader files now have the .shd extension.
- The above mentioned files all have the same reusable file format.
Added:
- Created a generic file format that is used for GBuffer shaders/replacement shaders/etc. and can be used for any data storage purpose. Usertool creates files with this format.
- Depth texture is now put into texture sampler 7 so that edited pixel shaders can use it.
Fixed:
- Render point 4 no longer has black screening when picking up active camo.
- Normal maps are now correctly used in the GBuffer normals (was previously just adding them, rather than multiplying by a Tangent:Binormal:Normal matrix).
Todo:
- Add far clip distance to shaders.
- Fix motion blur black screening (if still present).
- Fix black screen flash when turning on the flashlight at full power in single player :S.
- Fix massive velocities when camera view changes.
- Fix inverted normals on backfaces (tree leaves).
- Fix dodgy normals and alpha testing on old hardware.
- *Optional* Figure out how to write shader compile errors to the console.
I've included edited effect vertex shaders that pass their screen depth to the pixel shader, so that soft particles can be made possible. I've also included some rewritten pixel shaders to create soft particles, however they are not perfect and they will effect all particles that use them, so some particles that are meant to be solid will also be made soft . They have not been compiled though, so whether you use them or not is up to you :downs: (i'm also not going any further with this so don't go expecting improvements).
-
Re: OpenSauce Post Processing
Motion blur still gives a black screen.
-
Re: OpenSauce Post Processing
Finally get to test and its red for me too.
For those trying to use OS_Postprocessing in their OS project, you're going to want to add to MacrosCpp.hpp at the end of it:
Code:
#ifdef SAFE_RELEASE
#define SAFE_RELEASE(p) {if(p) { (p)->Release(); (p) = NULL; }}
#endif
I'd let//make scythe post it but he''s not available right now for me to spam on aim.
This needs a double post. apparently its turning all textures black as when i charge a weapon i see the light and the fp outline. lights and anything thats not scenery basically give this effect. i also see the outline of the bsp etc that way. hth.
Edit: It also seems that damnation_pp's sketchy effect no longer works with your newer builds of OS_PP?
Ex2: Nvm. I had the wrong version.
Also, I have an idea for a super bloom- Is it possible to, say, have a massive bloom when a person walks out from a dark area (that has only minimal bloom because of how dark it is), and then it fade into a normal bloom? If that's possible, then could we add another layer on top of it where close up is super-bright and then that bloom lowers in intensity based on the physical distance of the player from sources of light? Ex3- its cussing at me everytime i use pp_load
ex3
Now that i have my own build ill look for a way to isolate the blur error. Ideas are appreciated. And look for some shader tutorials as well.
-
Re: OpenSauce Post Processing
Quote:
Originally Posted by
Dwood
This needs a double post. apparently its turning all textures black as when i charge a weapon i see the light and the fp outline. lights and anything thats not scenery basically give this effect. i also see the outline of the bsp etc that way. hth.
Thats because render point 0 and 1 (where motion blur and the red test shader were set to render at) is before the alpha blended meshes are rendered, so lens flares, explosions, glass etc is rendered on top of the black screen.
Quote:
Originally Posted by
Dwood
Also, I have an idea for a super bloom- Is it possible to, say, have a massive bloom when a person walks out from a dark area (that has only minimal bloom because of how dark it is), and then it fade into a normal bloom? If that's possible, then could we add another layer on top of it where close up is super-bright and then that bloom lowers in intensity based on the physical distance of the player from sources of light? Ex3- its cussing at me everytime i use pp_load
Thats essentially what the old fake hdr (now removed) subsystem did. Scaling down the scene to 1x1 to get the average luminosity then increasing or decreasing the brightness over time to the prefered level. The brightness is picked up by the bloom shader and bloom is applied accordingly. Depth is available to shaders so i don't see why you couldn't have more bloom on a close up, but you'll have to try it for yourself, thats why its open source :eng101:. If you get error messages when you pp_load theres a broken shader.
-
Re: OpenSauce Post Processing
Makes halo run slower than usual but works :P
-
Re: OpenSauce Post Processing
Maybe we can work on this together if you want to make Halo display anaglyphically (3D effekt). Making 2 renders of one scene and overlaying them in Red and Cyan. Would that be possible?
-
Re: OpenSauce Post Processing
If possible, stay away from the color change method, it gives me a headache. :downs:
-
Re: OpenSauce Post Processing
...it's necessary for the 3D effect
-
Re: OpenSauce Post Processing
Personally, I don't see the appeal of 3D with coloured glasses (It's never looked right to me) so it's not something i'd take on as a project, plus I don't think it would be compatible with my post processing extension since everything (rendering to the gbuffer, applying post processes) would have to be done twice and it's already creating quite a framerate drop as it is :(. I do think its possible however.
-
Re: OpenSauce Post Processing
I honestly wouldn't bother with the colored 3D.
-
Re: OpenSauce Post Processing
Bit of a slap and dash test update here. I've tried to figure out the motion blur black screen shit so here's a test build for those who have the problem. If it still occurs (I wouldn't be suprised :gonk:) then i'm just going to have to disable it on ATI cards, not something I want to do obviously, but i'm out of ideas as to the cause.
If you try this build you may notice a new menu system hidden away in the F7 key, it's something I've been cooking for a little while, but it's largely untested. There's seperate menus for the main menu, in-game and pause menu, nothing fantastically interesting on them and nothing is certain to stay, but there's a version changer in the main menu if you want to peruse 1.00 - 1.09 servers. Also, it replaces the original OS ingame menu, so you'll lose it's functionality for the time being.
Another new thing is another (yes now 4, imma go drain your performance some more) gbuffer texture available to shaders that provides information on what type of object a mesh is (scenery, device machine, etc) and what team it is on, which allows things like this to be done (which isn't included btw):

So here's your >>Download<<. If you have problems let me know as soon as possible please :allears:.
-
Re: OpenSauce Post Processing
-
Re: OpenSauce Post Processing
motion blur works for me, and i have an ati card. :X
don't disable it!
also, liking this so far, although i get terrible fps unless i run at 800x600 :\
-
Re: OpenSauce Post Processing
-
Re: OpenSauce Post Processing
I've also noticed a hit in performance, but it's acceptable and definitely worth it. I love you FS.
-
Re: OpenSauce Post Processing
Yeah MotionBlur still doesnt work on my card. I'm going to invert the color and see if I can see if it's actually blurring.
-
Re: OpenSauce Post Processing
realised im using an 09 version that had motionblur, so i dont know if the 2010 version motionblur works or not. hope it does though, its a nice effect. i dont know if this has been explained or not, but could you explain how to add or take away certain post filters? if its been posted, could i have a link?
-
Re: OpenSauce Post Processing
Hehehehe, nice vision mode 8)
Damn I wish I had a computer which could run shit like this :(. Just a few more months
-
Re: OpenSauce Post Processing
Yeah, performance is my biggest issue with it to be honest. It's probably down to some lack of experience on my part :v:. At the moment, depending on how many render targets your card supports it will render up to 4(!) extra passes for each mesh excluding alpha blended meshes, which is quite a performance hit. If I could integrate the rendering better into the engine so that halos shaders do most of the work for me that would help, but doing that without breaking something else would be difficult :P.
-
Re: OpenSauce Post Processing
Quote:
Originally Posted by
FireScythe
Another new thing is another (yes now 4, imma go drain your performance some more) gbuffer texture available to shaders that provides information on what type of object a mesh is (scenery, device machine, etc) and what team it is on, which allows things like this to be done (which isn't included btw):
If you change an objects mesh type to bsp while it has an environment shader, does the game exception? If not, do normal maps work on the object?
-
Re: OpenSauce Post Processing
Looks like you fixed how weapons were blurred if you walked against a wall? Neato.
-
Re: OpenSauce Post Processing
Quote:
Originally Posted by
Choking Victim
If you change an objects mesh type to bsp while it has an environment shader, does the game exception? If not, do normal maps work on the object?
o_O
-
Re: OpenSauce Post Processing
I'm hoping it's that simple. Would you mind telling me where that mesh type enum is located firescythe? I'd like to test out that theory.
-
Re: OpenSauce Post Processing
I have an ATI Radeon 4870, motion blur doesn't work for me (black screen)
Anyway, I fail to see any other effects.
-
Re: OpenSauce Post Processing
Question: Why wasn't the updated VISR included? I'd really like to use it.
edit: also soft particles, how can I enable those?
-
Re: OpenSauce Post Processing
Quote:
Originally Posted by Choking Victim
If you change an objects mesh type to bsp while it has an environment shader, does the game exception? If not, do normal maps work on the object?
Quote:
Originally Posted by Choking Victim
I'm hoping it's that simple. Would you mind telling me where that mesh type enum is located firescythe? I'd like to test out that theory.
BSP isn't rendered as an object so there is no enum option to set an object to to render it as BSP. Getting normal maps on objects is going to at least require editing of all the model pixel shaders and possibly all model vertex shaders, as well as making some way of getting a normal map into a texture register for the pixel shaders to access. Which theoretically wouldn't be too difficult but ideally it would use .bitmap tags, for which getting a directX texture from hasn't been found yet.
Quote:
Originally Posted by Con
Question: Why wasn't the updated VISR included? I'd really like to use it.
edit: also soft particles, how can I enable those?
Didn't included it because I was rushing to get this test build out for the motion blur. I'll post it up when I get the chance :). For the soft particles you just have to compile the custom vertex and pixel shaders supplied with the previous build using usertool. They're just a demonstration though so they do have some problems.
Quote:
Originally Posted by DemonOne
I have an ATI Radeon 4870, motion blur doesn't work for me (black screen)
Anyway, I fail to see any other effects.
Looks like motion blur will be default disabled for ATI cards :(.
If you've only got the test build then there are no other effects to apply, since that is supposed to be dropped into a setup that already has everything from the previous build.
-
Re: OpenSauce Post Processing
Quote:
Originally Posted by
FireScythe
Which theoretically wouldn't be too difficult but ideally it would use .bitmap tags, for which getting a directX texture from hasn't been found yet.
The hardware format (which, in this case, would be a reference to a ID3DTexture or w/e the interface is called) data is stored in the bitmap_data_block itself. I'm not sure of the field offset off hand but the tag system treats it as padded fields (since it doesn't need to know about it as it's runtime related). Not too trivial to get, but you'd have to make sure it's loaded by the engine via a look up in the 'pc textures' data array. I don't think I included the address definitions for that (nor the 'pc sounds' data array for that matter)
-
Re: OpenSauce Post Processing
The "pc texture cache" pointer is at 0x6473A0, the "pc sound cache" pointer is at 0x647390, is there any hope of integrating these in the next release of OS? The hardware format data korn is talking about would be one of the last few padding values in the "bitmaps" block after the pixels offset field.
EDIT: The field offset you're looking for is 0x28 in the bitmaps block. I believe this is the address of the ID3DTextureinterface you're talking about korn.
-
Re: OpenSauce Post Processing
Hmm, i'll take another look at that then, because if I can do away with the os_bitmap tag that would make things a bit more mapping friendly.
-
Re: OpenSauce Post Processing
Quote:
Originally Posted by
FireScythe
For the soft particles you just have to compile the custom vertex and pixel shaders supplied with the previous build using usertool.
"loading shaders
no shaders to write"
:ugh:
-
Re: OpenSauce Post Processing
Quote:
Originally Posted by
Choking Victim
EDIT: The field offset you're looking for is 0x28 in the bitmaps block. I believe this is the address of the ID3DTextureinterface you're talking about korn.
Indeed :D. from the end of pixels_offset there is:
uint32 for something
datum_index handle for the bitmap tag
datum_index for the texture cache data (im guessing)
IDirect3DBaseTexture9* directX texture
uint32 for something else
But the methods for getting the directx texture created and destroyed is still needed. I'm looking for it but its not my forte.
Quote:
Originally Posted by
Con
"loading shaders
no shaders to write"
You need to have the ps_replacements and vs_replacements folders from >>here<< in your shaders folder (the same file structure in the archive).
Also, >>VISR<<.
-
Re: OpenSauce Post Processing
I really want motion blur :rage:
-
Re: OpenSauce Post Processing
Quote:
Originally Posted by
FireScythe
But the methods for getting the directx texture created and destroyed is still needed. I'm looking for it but its not my forte.
Glad I could help. As for the functions that create/destroy the textures, perhaps korn can give you a hand with that one. I watched a few of the functions when i loaded/unloaded the map and had a few candidates, but I really know close to nothing about the rendering side of the engine, so it's hard for me to reverse engineer something like this.
-
Re: OpenSauce Post Processing
-
Re: OpenSauce Post Processing
Out of date usertool. I think v1.01 used a different extension for the shaders, v1.03 uses .sasm and .hlsl.
-
Re: OpenSauce Post Processing
no one really answered my question... how do you make certain shaders load by default? i've looked around and messed with the shader list but changing it never changed anything for me.
-
Re: OpenSauce Post Processing
Thanks, I was able to compile them and there's a ps_replacements.psr file in shaders now. However, I couldn't see any change ingame; you can see where the smoke particles intersect the ground.
edit: rooster,
[Shaders]
Count: 2
[0]
Name: PP_Bloom
[1]
Name: PP_VISR
[Effects]
Count: 2
[0]
Name: Bloom
Indicies: 0
Render Point: 3
[1]
Name: VISR
Indicies: 1 <------ the index of the wanted effect in [Shaders]
Render Point: 3
-
Re: OpenSauce Post Processing
You need to compile the vertex shaders as well. The vertex shaders pass the vertex depth to the pixel shader to compare it against the depth of the rest of the scene from the gbuffer and fade the particle when it gets close to another surface.