marcClintDion

Members
  • Content count

    176
  • Joined

  • Last visited

Community Reputation

435 Neutral

About marcClintDion

  • Rank
    Member
  1. OpenGL How to bind a 3d noise volume

    GL_TEXTURE_3D perhaps.  It works for me.
  2. Glsl shader wont compile

    For many drivers, the same problem will occur if you try to write to a variable that is being passed down the line. 
  3. API Wars horror - Will it matter?

      Really. This only exists in my mind.... If UbiSoft offers to pay Microsoft for one of their DirectX consulting programmers, you don't think that this will happen?   As for the rest of the insulting things you said to me, I'll respond with the following.  Promit, you're an idiot.  People like you are the reason sites like this have such bad reputations for being overpopulated with arrogant, condescending, know-it-all, half-wits.  You're one of the big-fish in this department.
  4. API Wars horror - Will it matter?

    Microsoft likes to use DirectX to launch the newest OS they have for sale.  Microsoft has almost unlimited resources and lines of credit.  They can dump a billion dollars a year into the newest version of DirectX if they want to.    Also if a game company wants to use some obscure new DX function they can call up somebody at Microsoft and have a programmer leased to them until the issue is solved.    If the drivers for a major hardware company is having problems with a new DirectX API, You can be sure Microsoft will throw money at the problem to make it go away.  OpenGL doesn't have this vastly wealthy champion to ride in and fix problems in a timely fashion.   If DX didn't run at least a little bit faster, then I'd have to ask, "where is all that money going?"  Of course newer features are often faster and more consistent across GPU's.   Personally, I'm not going to help MS black-ball people into buying a new OS.    If you choose one or the other, I'd say you should choose which ever one feels most natural for you, I modify this point with a few more as follows.   I started with OpenGL because it made sense to me sooner than DX did.    Now I also consider cross-platform issues.   I also now consider this to be an ethical issue as well.    I do not like how Microsoft does business and I am not going to help them any more than I have to. This is no different then the idea of voting with your wallet.  If you do not like how they do business then don't support them any more than you have to.  If money is all you think about, then team up with MS and you'll likely be very happy as well.   If you feel that DX is the better API then use it, otherwise don't, or learn both.    There is no "war", this is drama and rhetoric for people who are upset at having to learn more than one thing, sort of like-> "Use what I prefer or you're a stupid-head!"
  5. When to load the Final Boss in a Game

    A person should not become so caught up in optimization that they never get anything done because they are continuously caught up in squeezing out yet another 1% performance improvement.  But to say that optimization should not even be considered is very questionable.  It should not hold a person back but it also should never be completely gone from a person thinking when they are building something.   To say that a person should not optimize is to say that a person should not use VBO's or whatever the DirectX equivalent is.  This is also like saying that a person should use an uncompressed format like .bmp.   Also it is like saying that a person should not consider sending indices to the GPU.  It is also like saying that a person should not work on keeping their model's poly count low.   "Who cares about optimization?...  let's build dozen's of models with 10,000,000 triangles each into our game!"   If a person ignores these things then their project space will be the size of a blu-ray disk for just one level and the game will likely run at only one or two frames per second on even the fastest machines.    Paying attention to optimization is fundamental.  It is like anything else.  If you do not consider it and learn it, and put it into practice then you will never understand it or be able to implement it.  You cannot get good at something by ignoring it.    Having to re-build the entire infrastructure of a software package after it's been built up for years to accommodate future optimization that was never considered before is a real possibility if this fundamental idea is neglected.   To be honest, I don't care what other people do in this regard.  If I some day install some bloated, inefficient software that doesn't run on my machine, I'm just going to erase it and I won't think twice about it.  When people ask me about the software I'll tell them it sucks and it wasn't written properly, you have to buy a $4000.00 dollar machine to run it.    Unless that software is a killer-app, very few people will respond differently.   I don't view people around here as my competition, I like to communicate with like minded people and I also like to help people, I don't view this any differently then when I wash dishes or clean tables at the local homeless soup kitchen.  I'm not going to argue with anyone about this, there would be no point.  Nobody is bound by law to pay attention to optimization but it is a guaranteed fact that you will be making everyone else who does pay attention to optimization look a whole lot better in contrast to you.    It's your name that's going on the product, it yours to do with as you please.  How do you want people to view your name?   //-------------------------------------------------------------------------------------------------------------------------------------------------------------- P.S.  Try this experiment, make up a super amazing resume that no game company could possibly ignore but start it off with the following. "THE NUMBER ONE RULE OF OPTIMIZATION IS: DON"T OPTIMIZE"  Now send it off to a bunch of companies and see if it receives any replies. 
  6. When to load the Final Boss in a Game

      I have to say something about this and I have been thinking of the response for several days now.  Before posting anything!  I have weighed the merit of not saying anything and I have consider the issue of starting an argument vs. just leaving things well enough alone.   I do not take insulting people lightly.  This being said....   If you consider yourself to be an honest person then you should also consider posting the following notice on all software that which you plan to distribute in the future. The notice should read as follows.    "This software will probably not work on your computer.  Buyer beware!"   The same could be said of anyone who only tests their software on their favorite brand of hardware.
  7. Not necessarily, deferred rendering is meant to address this issue.  Some other behind the scenes optimizations require some thought on your part.  Depth sorting for one...   If you load 1 big VBO then you can still access them individually by using the models indices.  I would not do this.  Accessing a component still requires additional draw calls if you want to change anything.  If you combine this with the headache and nuisance of adding and subtracting and hopping through indices then it may not be worth the extra few percentage points of performance increase.  Some implementations may slow down, who knows?  Messing up the index management can crash a computer. You won't know all your particular  issues until you try what you've built on every single machine that you can get your hands on.   Even most of those silly little handheld phones can handle at least several dozen VBO draw calls before they start complaining too much, some of them will do 100 or more per frame, easily.  This is combined with changing shaders and textures for many of those models.   Depending on your setup: (i)You can use a distance check to disable whatever is off screen.  if(modelPosX > -5.0 && modelPosX < 5.0){displayArea_1();} helps a lot to manage top view and side view games.  Also if you isolate collision + animation within these screen-sized chunks then you can get really carried away for every discrete area. (ii)If, when you change rooms it's only vertically or horizontally, then you will never have to display more than two areas at a time which gives you lots of flexibility in how many draw calls, texture and shader swaps can take place.    You could pack all the floor tiles for a room into one VBO, I think this would be practical and easy and safe.  Same for trees, rocks, bushes.   Now for the tiles, rocks, trees, and bushes you would have only 4 VBO's to switch between.  Even a wrist watch running Java could handle that much.   Pay attention to optimization but don't become so hung up on it that you set yourself behind several years worrying about it.  Stability is far more important.  Finishing something is also good.   p.s. You mentioned something about creating the required VBO's every frame.  I would say, avoid that.  Even changing them per-frame can stall things, I imagine creating them per-frame will be far worse. My imagination can't be stretched far enough for me to come up with a good reason to do this.
  8. I find it instructive to start at the end of the pipeline and use comment codes to shut off everything.  Comment out everything in the shaders, only have what is necessary to produce some form of output.  For instance, have your vertex shader output only what is necessary to get it working, which is only position.  Now make sure that the fragment shader is outputting only color.  If you get this far then you know that they are both setup and activated properly.  Now start moving the comment codes and re-compile as you re-add a line or two at a time.    Also, you can setup a screen aligned quad and use this to display the shadow texture(s).  If this is the part where you see nothing but a white screen, then maybe try and adjust your camera's near and far settings.  If you are using a very big spread between these two then maybe you are stretching out the z-axis enough to blank out the shadows.  For example, if you are using near = 0.001, far 10000, then you might see nothing but a white screen for the depth texture.  Try setting up some keyboard controls and adjust them starting at something like, near = .1, far = 100.   Now if you actually can see the shadows, adjust them as needed. Then again, I would suppose that some camera setups may not exhibit this issue.
  9. "Standard" Resolution Performance

    There are too many different resolutions available for this to be entirely true these days.  Maybe in the past when there were only a few available resolutions this would have been sometimes the case.   These days there must be at least a dozen or even 2 dozen common screen sizes available for desktops and laptops, it seems to me that the best optimizations would be the one's which are resolution independent.      GPU manufacturers go out of their way to avoid this issue by abstracting away the notion of pixels.  This is why the fragment processor is called the fragment processor.  The word 'fragment' is an abstraction of the word 'pixel'.   It implies that the pixel information is unknown before the GPU is plugged into a specific machine. Fragment is used in place of pixel because 'fragment' is resolution and screen size agnostic.   A console may possibly have hardware and driver optimizations for 720, and 1080 since these are common. A desktop GPU will certainly make no assumptions about such things.   So far as game programmers go??? Holy merd!  This would be like the days before GPU API's existed when people had to program for every possible graphics card.   2/3's of your software would be conditional switches and branches and code which is not even being used on the current machine.  There must be at least 100 distinct GPU's by now, with dozen's of sub-versions for many of them.    That sounds like a nightmare.  I'd rather pluck out all my eyebrow hairs with bolt-cutters than worry about something like this.  Then again, some people like to study what comes out of the rear-ends of animals.  There is something for everyone.   
  10. Saturnrin

    If I were to rough this out do what the fellow above suggested.   Use a photo editor to make the ring, anything that you want to be transparent should be black and whatever part of the texture map is white will be opaque.   render the planet   Enable blending.   render the above mentioned quad with the above mentioned texture,   Disable blending.   To make transparency the map you can search Google for "GIMP alpha masks, or specular maps"  The techniques you find should work equally well for making the rings texture map.
  11. rendering space ships

    Have you drawn out the asteroids yet?  I suppose collision detection should be looked at as well.  Bounding box collisions and radial collisions should be enough.  No collision response should be necessary except to show an explosion and shut off the model drawing.
  12. Yikes, this is too much for my brain to tackle all at once.  For now I'll stick with the VAO and shaders issue.    First, a bit of intro.... I don't use VAO's because I discovered that some common machines have limited support which will cause them to fail.  Also, recently, It's been mentioned here that some drivers will accidentally assign VAO state info to the next VAO.  This also, could be disastrous.    Anyways, my point is as follows, although my experience with VAO's is limited, so far as I know, shaders and VAO's have nothing to do with one another.  The initializations, for both, are completely separate and they are both activated in the render loop separately as they are used.... so far as I know.
  13. Well... commercial games do tend to have very long credit lists, kind of like movies.  There are usually way more than only two people involved in making them.   Some of the more impressive games I've seen took 4 years to build, and once again, it takes large teams of people this long.   Maybe some of the stress you feel is from having an unrealistic expectation of yourself.
  14. FMOD API

    Thanks for clearing this up for us.    on a side note...   When people who make money for the first time off something that uses FMOD, would you expect to be paid upfront, or would it be alright to pay up after the title has made enough money to justify doing so?    For instance, (i) I decide to publish and charge $1.00. (ii)  I pay Firelight $500.00 for the no-budget, super welfare license. (iii) I lose money on this one because the only copy that sold was purchased by my mom.   or   Would you be willing to accept payment from welfare budget software only after it's proven to not be a total loss?...