OGE "Oblivion Graphics Extender"

Post » Fri May 27, 2011 7:57 am

Yes, I know, but with only Godrays.fx in it before that, I still had the problem.
User avatar
Marina Leigh
 
Posts: 3339
Joined: Wed Jun 21, 2006 7:59 pm

Post » Fri May 27, 2011 5:09 pm

Would it be possible to pass variables between the shader files and Oblivion scripting?

I can field this one for you, wrinklyninja. It would be possible to send scripted shader constants to your shaders. The 'f4Time' constant updates every frame to reflect the game world's time, so adding a framework to allow scripts to create and manipulate constants should be possible. But they are unfortunately constants and the shader can't manipulate them. The only output from the shader is a frame buffer with processed pixels. Unless you're dealing with DirectX 11 and Compute Shaders (and I'm making an assumption here), I don't think there is any way to get anything but a frame buffer from a pixel shader.

Afraid you can only get one-way communication.
User avatar
Wayne W
 
Posts: 3482
Joined: Sun Jun 17, 2007 5:49 am

Post » Fri May 27, 2011 7:03 am

...


You need to turn off Anti Aliasing. To be on the safe side, turn off HDR and Bloom. This happened to me too, and was because I had Anti Aliasing enabled.

BTW, could Anti Aliasing be replicated through shaders too? That would fix the issue of not being able to remove those ugly jaggies.
User avatar
joseluis perez
 
Posts: 3507
Joined: Thu Nov 22, 2007 7:51 am

Post » Fri May 27, 2011 2:33 pm

@ Scanti:I can't remember if I've requested this already, so I figured I'd go ahead anyway.

Would it be possible to pass variables between the shader files and Oblivion scripting? So you can set shader variables through Oblivion, and also (not sure if this is possible) so that we can get variable values from the shader.
I believe that's what he meant when he said "I'm off to work on the actual OBGE shader code base" :P I, for one, know this is possible. Timeslip's OBGE lets you pass constants to any applied shader.
User avatar
rae.x
 
Posts: 3326
Joined: Wed Jun 14, 2006 2:13 pm

Post » Fri May 27, 2011 11:18 am

@ HawkleyFox: I thought as much. A pity too, because I had a really easy way to do time based DoF using it. Now I'm actually going to have to think about it. :sigh:

@ xaxxiron777: I think you could be able to do that, as far as I know AA is just alpha blending of pixels, which can be done by shader. It might have some side-effects, or poor performance or something though, the others are more likely to know than me.
User avatar
Elisabete Gaspar
 
Posts: 3558
Joined: Thu Aug 31, 2006 1:15 pm

Post » Fri May 27, 2011 5:38 am

You need to turn off Anti Aliasing. To be on the safe side, turn off HDR and Bloom. This happened to me too, and was because I had Anti Aliasing enabled.

BTW, could Anti Aliasing be replicated through shaders too? That would fix the issue of not being able to remove those ugly jaggies.

Ah, I thought it was automatically done so, thanks:).
User avatar
David Chambers
 
Posts: 3333
Joined: Fri May 18, 2007 4:30 am

Post » Fri May 27, 2011 12:44 pm

What exactly is SSAO? You have information about everything but that.
User avatar
Jennifer Rose
 
Posts: 3432
Joined: Wed Jan 17, 2007 2:54 pm

Post » Fri May 27, 2011 7:39 am

You could, I dunno, google it?

Here's the dump of the Wikipedia entry (first google result) short description:

Screen Space Ambient Occlusion (SSAO) is a rendering technique for efficiently approximating the well-known computer graphics http://en.wikipedia.org/wiki/Ambient_occlusion effect in real time. It was used for the first time in a video game in the 2007 PC game http://en.wikipedia.org/wiki/Crysis made by http://en.wikipedia.org/wiki/Crytek.

The algorithm is executed purely on the computer's http://en.wikipedia.org/wiki/Graphics_Processing_Unit and implemented as a http://en.wikipedia.org/wiki/Pixel_shader, anolyzing the scene http://en.wikipedia.org/wiki/Depth_buffer which is stored in a texture. For every http://en.wikipedia.org/wiki/Pixel on the screen, the pixel shader samples the depth values around the current pixel and tries to compute the amount of occlusion from each of the sampled points. In its simplest implementation, the occlusion factor depends only on the depth difference between sampled point and current point.

Without additional smart solutions, such a brute force method would require about 200 texture reads per pixel for good visual quality. This is not acceptable for real-time rendering on modern graphics hardware. In order to get high quality results with far fewer reads, sampling is performed using a randomly-rotated kernel. The kernel orientation is repeated every N screen pixels in order to have only high-frequency noise in the final picture. In the end this high frequency noise is greatly removed by a NxN post-process blurring step taking into account depth discontinuities (using methods such as comparing adjacent normals and depths). Such a solution allows a reduction in the number of depth samples per pixel to about 16 or less while maintaining a high quality result, and allows the use of SSAO in real-time applications like computer games.

Compared to other http://en.wikipedia.org/wiki/Ambient_occlusion solutions, SSAO has following advantages:

  • Independent from scene complexity.
  • No data pre-processing needed, no loading time and no memory allocations in system memory.
  • Works with dynamic scenes.
  • Works in the same consistent way for every pixel on the screen.
  • No http://en.wikipedia.org/wiki/CPU usage – it is executed completely on the GPU.
  • May be easily integrated into any modern graphics pipeline.
Of course, it has its disadvantages, as well:

  • Rather local and in many cases view-dependent, as it is dependent on adjacent texel depths which may be generated by any geometry whatsoever.
  • Hard to correctly smooth/blur out the noise without interfering with depth discontinuities, such as object edges (the occlusion should not "bleed" onto objects).

User avatar
Stay-C
 
Posts: 3514
Joined: Sun Jul 16, 2006 2:04 am

Post » Fri May 27, 2011 5:22 pm

Small Idea, if you're having issues activating/deactivating Godrays based on times, why don't you make a plugin with TES construction set that during sunset and sunrise activate the godray shader.
User avatar
Amy Gibson
 
Posts: 3540
Joined: Wed Oct 04, 2006 2:11 pm

Post » Fri May 27, 2011 4:29 pm

Small Idea, if you're having issues activating/deactivating Godrays based on times, why don't you make a plugin with TES construction set that during sunset and sunrise activate the godray shader.
Can't be done with the current release of the plugin. You can however toggle all of the loaded shaders- Just call runScriptLine "showtestshader 0".
User avatar
Dagan Wilkin
 
Posts: 3352
Joined: Fri Apr 27, 2007 4:20 am

Post » Fri May 27, 2011 4:10 pm

Can't be done with the current release of the plugin. You can however toggle all of the loaded shaders- Just call runScriptLine "showtestshader 0".

Alright I'm only using Godrays anyways. Thanks!

Edit: Wrote up a script that enables on new game (or enable it by startquest DCGodRayQuest in console) that activates GodRays (and anything else in shaderlist.txt) during the morning and sunset.

http://www.mediafire.com/?0zj1au0wa3k, drop it in your data folder and enable test2 mod.

Just remember it just toggles showtestshader command, so if you also have Depth of Field or SSAO in shaderlist.txt it'll turn that on and off.
User avatar
Epul Kedah
 
Posts: 3545
Joined: Tue Oct 09, 2007 3:35 am

Post » Fri May 27, 2011 10:52 am

@ Wrinklyninja

How about we compile the current list of current shaders, and possibly my new bloom once its finished, into a alpha package. We could have a preset shaderlist so people stop asking about the black and white noise instead of reading the OP as they should. Then once more shaders and more versions come out, we can add on to that package with Scanti's updates and rewrites and call it an official BETA plugin. Then maybe in the distant future, we can have a GUI front.
User avatar
Phoenix Draven
 
Posts: 3443
Joined: Thu Jun 29, 2006 3:50 am

Post » Fri May 27, 2011 5:48 am

@ HawkleyFox: I thought as much. A pity too, because I had a really easy way to do time based DoF using it. Now I'm actually going to have to think about it. :sigh:

When I used your shader, I thought on it myself. My thoughts were to not just sample the very central pixel, but some additional pixels around that point as well. You could one of the following with those pixels:
1) Average these values together in some manner to get a single depth.
2) Identify a focus range, where the central point identifies one limit of your min/max range, and the average fills the other. This would be less realistic, but it would allow instant focusing on objects, which would be nice in hectic battles where you're moving around a lot.

In any case, you might want to try a variety of ideas to find the best effect.

Now, the trick is to increase this sampling radius when the player turns the camera (this would probably have to be delivered in a shader constant), then when the camera stops moving too much, reduce it over a second or so to practically just a single point so it "focuses" on what the player is pointing at. You could imagine it being a lot similar to the targeting reticule in FPS games. When the player turns, the reticule spreads out, but when they stop moving and focus on their target, it gets smaller and smaller over time until they are cross hairs, indicating maximum accuracy.

What do you think?
User avatar
x_JeNnY_x
 
Posts: 3493
Joined: Wed Jul 05, 2006 3:52 pm

Post » Fri May 27, 2011 6:28 am

I've been lurking around this topic since before you guys found the Depth buffer and I gotta say, this is awesome. I'm finally getting a mid-high end gaming pc next week and I can't wait to reinstall Oblivion and drop Godrays in there along with what's done of ATP 2.0.
Anyways, just posting to show my support and whatnot. Good job getting it this far guys :thumbsup:

Ravin
User avatar
Jack Bryan
 
Posts: 3449
Joined: Wed May 16, 2007 2:31 am

Post » Fri May 27, 2011 9:32 am

You could, I dunno, google it?

Here's the dump of the Wikipedia entry (first google result) short description:


Well sorrrry! I never heard of it before and I thought it was just special to the mod, but thanks anyways...
User avatar
Luis Longoria
 
Posts: 3323
Joined: Fri Sep 07, 2007 1:21 am

Post » Fri May 27, 2011 10:08 am

Well sorrrry! I never heard of it before and I thought it was just special to the mod, but thanks anyways...

Google can answer any question you have in a heartbeat.

Here's a really good visual example of SSAO for you though: http://www.youtube.com/watch?v=nYoGJP5z_U4&feature=related

Hope that gives you a good idea.



On a side note: I have something to bring up about Depth of Field.

The effect itself is amazing, there's no doubt about that. But have you ever considered 'when' it should be used? Any game that uses it (usually fps games like Crysis and Fallout 3, but also Uncharted 2 for example) only toggle Depth of Field on when you are aiming down the barrel of a gun. When you're firing from the hip, there is no depth of field, just as there is no depth of field when you're simply moving around without shooting at all. The reason for this (as far as I can tell):

When you look down the barrel of a gun, your focus point is always the crosshairs. You blank out anything else around and focus on that one point for clear, accurate marksmanship. If you move the gun to the left or right, up or down, your eyes also follow the crosshairs, as do your focus. But when you're firing blind from the hip, or just exploring, your eyes are free to wander as they will. They aren't focused on the crosshairs at all. So applying Depth of Field when you aren't aiming down a sight, implies that your eyes are always centred in your head, and the only way to look left and right, up and down, is to move your head left and right, up and down. It implies that you always have a strong focus down the centre.

Naturally we don't work this way. Our eyes wander a lot, and games replicate this by applying Depth of Field only when you are really focusing on a specific location or distance (like aiming the sights of a gun). Depth of Field is never applied outside of these situations. I suppose the Oblivion version of this would be to only apply the effect when you draw your bow string.

I'm not knocking the shader, as it really is gorgeous. But it feels weird having to move my 'head' in order to move my eyes. I can't glance down at the floor, or over at that plant anymore. I have to move my entire field of vision just to focus on something that's already in my field of view. I notice a lot of you are shying away from camera flare effects because they aren't realistic (props for aiming for realism), but don't you feel that a constant Depth of Field effect also detracts from realism? It's just not how our eyes work at all.

I should clarify i'm not making an attack against the shader, I'm just interested in other people's thoughts about how it works right now.
User avatar
Dj Matty P
 
Posts: 3398
Joined: Sat Jun 09, 2007 12:31 am

Post » Fri May 27, 2011 2:40 pm

I can relate with you on that, Depth of Field isn't naturally supposed to be that noticeable outside as your eye wanders. But as all shaders, its a choice any player has to use the effect or not. I personally love what wrinklyninja has done with his new v3 Depth of Field. Maybe we can find a way to apply a "special Depth of Field" trick when zoomed in with the bow as well. Although I think the original shader does work when firing with a bow down sight...at least to me it looks that way.

A big plus to the shader that I like is the distant blur factor.
User avatar
naomi
 
Posts: 3400
Joined: Tue Jul 11, 2006 2:58 pm

Post » Fri May 27, 2011 7:21 am

RE: Depth Of Field

What I've been attempting to do ATM is to make the Depth Of Field as versatile as possible, so that it can be adjusted for use in a variety of circumstances. Like AmpolX has said, I've got distance blurring as an option. I can also toggle weapon blurring on or off, I can adjust the level of blur, and its gradient as a function of distance, and tweak the relative distances between which the blur operates. On top of this, I'm also wanting to get a solution for blur in 3rd person, a better blur effect, the next version will allow you to specify the focus point, and perhaps the thing I think most important, I want to get it to be a time-dependant function. Once I've got all these different features, all controlled by defined variables, I can go about the next stage.

A lot of people recently have been bringing up the idea of adjusting shaders on-the-fly in game. I think I mentioned such was my intention three or four threads ago, and that remains the case. I can't however do the impossible, and so I've got to wait until Scanti has implemented variable passing into his plugin so I can pass information from Oblivion to my shader. When that is possible, I can start coding conditions in the CS for when all the above features should be used, and/or adjusted, like for dialog, and when the player is in melee or ranged combat, and changing between 1st and 3rd person, or riding a horse, or mapping it to a key for screenshots, or... Well, you get the picture. And yes, it is true that because we are looking at a static image on a screen that is relatively small in our viewspace, we see pretty much the whole thing in focus since our eyes are always wandering, and this can get annoying. The above tweakability would also let you disable DoF apart from certain situations.

For the moment, I'd classify being able to choose the on-screen focus point and time-dependant blur as my two main objectives. The first is actually really simple since my rewrite, and should have been in v3 if I'm honest, but I didn't think of it till too late. It would eliminate annoying 'bugs' such as focussing on your shield in combat when you block instead of what's over the shield, focussing on drawn arrowpoints, and a really annoying blur-jolting as you ride a horse in 3rd person, and the focus switches from the back of your head to the distance. The second is a lot more tricky and will probably involve major code changes or something, but it would be really great if I can get it. If I get that, after all, you'd then be able to see the same sort of thing that you see in more modern games' cutscenes, where DoF can even be used as a story telling device. :)
User avatar
Life long Observer
 
Posts: 3476
Joined: Fri Sep 08, 2006 7:07 pm

Post » Fri May 27, 2011 10:03 am

I would still have to calculate 3D positions from Screen-Space coordinates and Depth (requires a matrix multiply), which would add a bit of overhead.

GAH! http://mynameismjp.wordpress.com/2009/03/10/reconstructing-position-from-depth/ D:

Re: AA and depth capture: Not going to happen, that's a problem with D3D9 (and D3D10, though not 10.1) itself. MSAA depth buffers are hairy, and getting meaningful information out of them is really difficult.

Also, have you guys ever considered using one of those accumulative SSAO techniques a la Unreal 3.5? You might be able to eke out some better quality results and cut down on the number of samples at the cost of some 'ghosting' artifacts. They were somewhat noticeable in Borderlands but not particularly glaring-- I had to explicitly pay attention to problem regions and try to produce artifacts before they got really noticeable. Source is available upon request if you want it though I don't think you can straight-up copy/paste theirs for obvious reasons.
User avatar
Andrea P
 
Posts: 3400
Joined: Mon Feb 12, 2007 7:45 am

Post » Fri May 27, 2011 4:25 pm

Hello there. I just wanted to say that I'm amazed at what you guys have managed to accomplish so far.
I never would have thought that such drastic graphical improvements were even possible in Oblivion.
When I turned these shaders on, I just couldn't believe me eyes.
I spent so much time just wandering around admiring all the new eye-candy and how much it added to the atmosphere of the game.
After so long I decided that I might as well take some screenshots and make some comparison pictures as well.
Here are some that I took in the Shivering Isles. I hope you all like them.

All shots have HDR enabled.

Godrays
http://img10.imageshack.us/img10/8215/sunrisef.jpg

Godrays+SSAO
http://img14.imageshack.us/img14/2343/blissalley.jpg
http://img10.imageshack.us/img10/8484/sunfun.jpg (Slight ENBSeries DoF)

SSAO Comparison Shots
http://img191.imageshack.us/img191/7754/thepondbefore.jpg | http://img191.imageshack.us/img191/7086/thepondafter.jpg
http://img37.imageshack.us/img37/8559/quietstreetbefore.jpg | http://img10.imageshack.us/img10/1808/quietstreetafter.jpg
http://img138.imageshack.us/img138/4381/fountainofblissbefore.jpg | http://img14.imageshack.us/img14/1034/fountainofblissafter.jpg
http://img191.imageshack.us/img191/9885/cruciblenightbefore.jpg | http://img191.imageshack.us/img191/9180/cruciblenightafter.jpg

Thank you all so much for your hard work, and for making one of my favorite games of all time even more beautiful.
User avatar
Ells
 
Posts: 3430
Joined: Thu Aug 10, 2006 9:03 pm

Post » Fri May 27, 2011 6:57 am

Hello there. I just wanted to say that I'm amazed at what you guys have managed to accomplish so far.
I never would have thought that such drastic graphical improvements were even possible in Oblivion.
When I turned these shaders on, I just couldn't believe me eyes.
I spent so much time just wandering around admiring all the new eye-candy and how much it added to the atmosphere of the game.
After so long I decided that I might as well take some screenshots and make some comparison pictures as well.
Here are some that I took in the Shivering Isles. I hope you all like them.

All shots have HDR enabled.

Godrays
http://img10.imageshack.us/img10/8215/sunrisef.jpg

Godrays+SSAO
http://img14.imageshack.us/img14/2343/blissalley.jpg
http://img10.imageshack.us/img10/8484/sunfun.jpg (Slight ENBSeries DoF)

SSAO Comparison Shots
http://img191.imageshack.us/img191/7754/thepondbefore.jpg | http://img191.imageshack.us/img191/7086/thepondafter.jpg
http://img37.imageshack.us/img37/8559/quietstreetbefore.jpg | http://img10.imageshack.us/img10/1808/quietstreetafter.jpg
http://img138.imageshack.us/img138/4381/fountainofblissbefore.jpg | http://img14.imageshack.us/img14/1034/fountainofblissafter.jpg
http://img191.imageshack.us/img191/9885/cruciblenightbefore.jpg | http://img191.imageshack.us/img191/9180/cruciblenightafter.jpg

Thank you all so much for your hard work, and for making one of my favorite games of all time even more beautiful.

Lovely, but what texture mod is that?
User avatar
Chica Cheve
 
Posts: 3411
Joined: Sun Aug 27, 2006 10:42 pm

Post » Fri May 27, 2011 9:15 am

Lovely, but what texture mod is that?


Thank you.
The texture mod I'm using is, Bomret's texture pack for the Shivering Isles.
You can find it http://tesnexus.com/downloads/file.php?id=28378 at Tesnexus.
Another link http://planetelderscrolls.gamespy.com/View.php?view=OblivionMods.Detail&id=4161 at Planet Elder Scrolls.
User avatar
Jah Allen
 
Posts: 3444
Joined: Wed Jan 24, 2007 2:09 am

Post » Fri May 27, 2011 9:52 am

Godrays
http://img10.imageshack.us/img10/8215/sunrisef.jpg

Godrays+SSAO
http://img14.imageshack.us/img14/2343/blissalley.jpg
http://img10.imageshack.us/img10/8484/sunfun.jpg (Slight ENBSeries DoF)

SSAO Comparison Shots
http://img191.imageshack.us/img191/7754/thepondbefore.jpg | http://img191.imageshack.us/img191/7086/thepondafter.jpg
http://img37.imageshack.us/img37/8559/quietstreetbefore.jpg | http://img10.imageshack.us/img10/1808/quietstreetafter.jpg
http://img138.imageshack.us/img138/4381/fountainofblissbefore.jpg | http://img14.imageshack.us/img14/1034/fountainofblissafter.jpg
http://img191.imageshack.us/img191/9885/cruciblenightbefore.jpg | http://img191.imageshack.us/img191/9180/cruciblenightafter.jpg

Those are spectacular shots.
User avatar
RAww DInsaww
 
Posts: 3439
Joined: Sun Feb 25, 2007 5:47 pm

Post » Fri May 27, 2011 3:38 pm

I still have the same problem with the latest SSAO shader that I had with the first released version, which apparently nobody else seems to have:

When I turned it on, the black lines are all over the place, but never where they should be. It looks like http://img12.imageshack.us/img12/5364/ssao1.jpg or http://img69.imageshack.us/img69/3739/ssa02.jpg with "#define RAW_SSAO" uncommented. After the second screenshot, I turned the shader off and made another screenshot for comparison and then put both together in GIMP: http://img6.imageshack.us/img6/1295/ssao3.jpg.
(From my last post in an OBGE thread: http://img149.imageshack.us/img149/1605/stripesk.jpg and http://img688.imageshack.us/img688/2333/stripes2andgodrays.jpg. In case the GIMPed picture is too dark.)

This is what my DepthShaderTest.log file says:
Ingnoring messageFailed to create buffer texture (INTZ).Failed to create buffer texture (DF24).Failed to create buffer texture (DF16).Depth buffer texture (RAWZ) (1440,900) created OK.Depth buffer attached OK.Ingnoring messageCreating vertex buffers.Creating screen texture.Width = 1440, Height = 900Setting screen surface.Setting depth texture.Loading the shaders.Loading shader (data\shaders\ssao_test.fx)Found filename : ssao\RandomNoiseB.ddsLoading texture (data\textures\ssao\RandomNoiseB.dds)Setting effects screen texture.Added to list OK.Received ExitGame messageCalling Release DeviceReleasing thisframe surface.Releasing lastpass surface.Releasing lastframe surface.Releasing thisframe texture.Releasing lastpass texture.Releasing lastframe texture.Releasing shader vertex buffer.


I should mention that I have a GeForce Go 7900 GS, which should support the 3.0 shaders.
And the godrays look just fine. (Depth of Field doesn't seem to work as intended either, but I haven't made any screenshots as I'm not too interested in that shader anyway.)
User avatar
Isabella X
 
Posts: 3373
Joined: Sat Dec 02, 2006 3:44 am

Post » Fri May 27, 2011 8:41 pm

I still have the same problem with the latest SSAO shader that I had with the first released version, which apparently nobody else seems to have:

When I turned it on, the black lines are all over the place, but never where they should be. It looks like http://img12.imageshack.us/img12/5364/ssao1.jpg or http://img69.imageshack.us/img69/3739/ssa02.jpg with "#define RAW_SSAO" uncommented. After the second screenshot, I turned the shader off and made another screenshot for comparison and then put both together in GIMP: http://img6.imageshack.us/img6/1295/ssao3.jpg.
(From my last post in an OBGE thread: http://img149.imageshack.us/img149/1605/stripesk.jpg and http://img688.imageshack.us/img688/2333/stripes2andgodrays.jpg. In case the GIMPed picture is too dark.)

This is what my DepthShaderTest.log file says:
Ingnoring messageFailed to create buffer texture (INTZ).Failed to create buffer texture (DF24).Failed to create buffer texture (DF16).Depth buffer texture (RAWZ) (1440,900) created OK.Depth buffer attached OK.Ingnoring messageCreating vertex buffers.Creating screen texture.Width = 1440, Height = 900Setting screen surface.Setting depth texture.Loading the shaders.Loading shader (data\shaders\ssao_test.fx)Found filename : ssao\RandomNoiseB.ddsLoading texture (data\textures\ssao\RandomNoiseB.dds)Setting effects screen texture.Added to list OK.Received ExitGame messageCalling Release DeviceReleasing thisframe surface.Releasing lastpass surface.Releasing lastframe surface.Releasing thisframe texture.Releasing lastpass texture.Releasing lastframe texture.Releasing shader vertex buffer.


I should mention that I have a GeForce Go 7900 GS, which should support the 3.0 shaders.
And the godrays look just fine. (Depth of Field doesn't seem to work as intended either, but I haven't made any screenshots as I'm not too interested in that shader anyway.)


Your problem is that you are using the RAWZ depth buffer which stores it's depth information in a different way to the other types of depth buffer. (It was nVidia's first attempt at a readable depth buffer. The depth is split between 3 variables instead of just using 1 variable as the later depth buffers use). I need to write a shader that converts the RAWZ depth information into the same format as the other types of buffer and integrate it into the system. This is the shader code for what I would have to do according to the nVidia docs:

float3 rawval = floor( 255.0 * tex2D(Depth, tcoord).arg +0.5);float z = dot( rawval, float3(0.996093809371817670572857294849,0.0038909914428586627756752238080039,1.5199185323666651467481343000015e-5) / 255.0);

User avatar
Marquis T
 
Posts: 3425
Joined: Fri Aug 31, 2007 4:39 pm

PreviousNext

Return to IV - Oblivion