Jump to content

  • Log In with Google      Sign In   
  • Create Account


Member Since 23 Dec 2011
Offline Last Active May 03 2016 09:10 AM

#5284882 C# Enum extension function - impossible to set value?

Posted by on 03 April 2016 - 12:11 PM

Thanks for the reply. It helped alot.

#5067617 Challenge #2: What tools can you not live without?

Posted by on 05 June 2013 - 07:35 AM


Even when it is also a priced product, it has to be mentioned when talking about development tools, as it is - IMO - the best editor for 3D modelling. If you are working in a game developing team, I believe any artist would expect to be allowed to work in 3DSMax.

#5067597 Challenge #2: What tools can you not live without?

Posted by on 05 June 2013 - 05:36 AM


The best version control system out there, and it is free.


I will mention a cool GUI program for it as well, because it makes it extremely easy to use from Windows Explorer:


#5029941 Alpha Testing: I manage to "scorch" my edges

Posted by on 07 February 2013 - 08:37 PM

I figured it out, and it was not an easy one:

My rendertarget was in the format of ARGB and cleared to black. The alpha values of the plants then changed the alpha value of the rendertarget. This rendertarget was then rendered onto another rendertarget (in order to support multiple viewports), also cleared black, but with XRGB format. And then the black hits through the alpha values.


I changed the rendertarget to XRGB and the problem was solved. I was experimenting once with antialias and at some point set the rendertarget to ARGB and never changed it back, and then it hit me now like a landmine smile.png


I thank you all for your patience and incredible will to help. Even when we did not get close to the actual problem here, I learned alot:

 - Not taking anything for granted, not even a D3DX-file-loader

 - Both editors and loaders can play funny tricks to save space, like storing RGB-layer of pixels with alpha 0 as black (0).

 - I learned that good alpha textures needs similar RGB color across the border, or filtering will create an unwanted result (since I have only used other ppl's textures, this was new  to me)

 - When I go into details on mipmaps, I have to be careful with the same borders on these as well

 - I learned to use PIX!


Thank you all for your help. I wouldn't know what to do without the incredible amount of expertise on this forum.





It was actually the same scenario as before, I had just disabled rendering skybox, terrain and non-alphatested objects, so I wouldn't get an ungodly amount of textures and surfaces in the test.

#5029647 Alpha Testing: I manage to "scorch" my edges

Posted by on 07 February 2013 - 12:21 AM

I stole code for loading .tga from the ATI demo I used ealier. But it still took quite a while to implement, so I really regret that I didn't try PIX earlier.

I didn't know PIX and I guess I shied away because of that. Too bad.


Once I got it up and running, I must say that Im impressed. I can easily see myself getting addicted to it smile.png


It does not look like there is anything wrong with the D3DX-loading of the .tga. My ATI-imported code didn't solve the problem either, so I expected that. But what can it be then?

I made a collage of the PIX session I ran. If you are interested in something not shown, let me know. I am also uploading my .PixRun file, if anyone is interested. It is created by the latest DX-SDK (june 2010 - had to download it especially for this, as the DX I run on had an ancient version (DX SDK June 2005).



Here is the PIXRun-file (zipped):



Here is the PIX-collage (BIG!):


#5027244 HLSL (SM2/3): How do I transfer less-than-32 bit variables?

Posted by on 30 January 2013 - 12:06 PM

Thanks for the excellent input guys. Knowing that it is impossible to have less than 32 bit types is a big plus - at least I don't have to bang my head against an unbreakable wall :). It was also nice to hear about people's performance stories, as from them it sounds like Im not gonna run into a bandwidth problem as the first thing.

Thanks for the feedback, guys.

#5005598 To those that played Ultima Online, What would you have done instead of creat...

Posted by on 30 November 2012 - 12:27 AM

Ya, I wouldn't like a global tracking like that either. It would have to be local (otherwise the blocking of escape wouldn't make sense). In my dream game there would also be no world chat - which UO didn't have either.

It all has to balance out. It should be possible to be a PK, however the risk should be enormous. Which I believe it was with statloss. When I was out with our PK group, we wiped several times, both due to connection loss, but also due to big fights, where it quickly got hairier than what we expected, as friends of the victims recalled and gated in, and we were blocked from gating/recalling because of our PKing.

A guy in our group had grinded his way to GM Eval (back before GGS, but after it was extremely hard) and 3 other GMs and some 85 resist magic, and when we wiped, he was about to quit UO completely, because of the sheer cost in time of that wipe.
He did come around though, and we pursuaded him to not grind his PK char so high again :) With a skilled group it was quite possible to dish out some damage with less than that, especially with chars equipped with weapons of Vanquishing. Personally I ran around with a 3xGM warrior (all the damage-dealing skills - warrior skills were so much easier) and a Spear of Vanquishing (spears had stun), and that setup could do its job, even when I was weaker in prolonged fights and didn't have much healing. A little hiding skill of 50 or so, saved my bacon more than a few times :)
Anyway, point of that story is, that the punishment was quite harsh and it was felt as a heavy blow by the losing PK. IMO they could have added a few more strengths on the anti-PK side and it would have been well balanced.

I remember that we once joked in our PK group, that even if they nerfed the PK to give a maximum damage of 1 with any attack, we would still be able to do it. I believe that the sheep would always have been whining, no matter what. For them it is easier to complain instead of taking their time and actually learn how to play the game.
How to get around that one is hard, if you want to cater to the sheep. I guess a game like that would have to settle for a smaller audience.

#4905893 Terrain transition problem between patches with basemaps

Posted by on 24 January 2012 - 03:45 PM

Sorry for the late reply.
I began working on something else while awaiting feedback, and after that it took some time to implement my final solution.

I tried Hodgman's solution, but it is not good enough. For the seams to go away, the pixels on each side MUST be identical, and toying with mip-levels across borders will not on its own make the seams disappear. And if you copy borders after that, you will get the exact same artifact as what I described above.

My solution was to instead average the borders on each side of the seam. At least the "hockeystick" will get distributed on both sides (see next screenshot) and will therefore be less heavy. I choose to only copy the first 4 levels of the mipmaps (out of 11 with a 512x512 texture) so that it is seamless a decent distance, without the artifact getting too heavy. out in the distance, I don't think the seams will be noticed, with bumpy terrain and colors already about the same colors on each side - at least I didn't notice anything, even when looking carefully, knowing exactly where the seam is.

This is how it will look with averaging the color of the two borders:
Posted Image

As can be seen, there is still an effect, but it is now distributed on each side. As I use the technique on only 4 levels, it does not get that heavy. It is only because I use the red color while debugging, that the line beyond is so obvious.

This is how it will look on a "live" terrain (look for small red dots I placed at the beginning and end of the map to show where the seam is):
Posted Image

It looks quite convincing, also when moving. I don't notice anything unnatural.
Without knowing any special shader technique to make a better result, this is the best I could come up with.