Jump to content
  • Advertisement


  • Content Count

  • Joined

  • Last visited

Community Reputation

199 Neutral

About CatmanFS

  • Rank

Personal Information

  • Interests
  1. I know this is a simple question, but one I've always been looking for a solution for.   class MAP {       Scene scene;       void AddedToScene(Scene); };     void SCENE::addedToScene(Scene newScene)     {         scene = newScene;     }    I know it's minor, but I don't like always having to put a scene = newscene statement in the function definition.   Is there any way to make the class function automatically accept a function parameter of the same name as a class variable.   void addedToScene(Scene scene)     {          // scene is automatically accepted as the class variable with the same name     }
  2. CatmanFS

    Pixel buffer

    So just keep all he graphics operations on the gpu, got it. Is there a good, cross-platform, well documented method that most people use? Are there tutorials or examples of this somewhere?
  3. CatmanFS

    Pixel buffer

    Also, if anyone has any pointers about what operations can be performed the fastest, and any additional information about per-pixel operations would be nice. I'm really just concerned about direct control over gamma, brightness, contrast, that sort of thing. Would also be nice to hear about any useful ideas for maybe having a histogram or something that could help correct over or underexposure for post processed images. I'm sure there's a whole list of websites or pages somewhere that has info on this, but I would like to hear some recomendations, maybe a specific site that focuses on post processing operations.
  4. I'm working with openGL, and I want to know which is the best method of directly accessing information in the frambuffer. I want to be able to read the pixels being displayed onscreen and place them into an array, perform operations, and put them back into the current frame. What is the best method, meaning fastest or most flexible or is there a tradeoff? If you could give me a few ideas or point me in the right direction I would be much appreciative.
  5. CatmanFS

    Airlight Engine

    This is a collection of renders and editor screenshots of the Airlight Engine. Being developed for a number of indie projects, this engine plans to be flexible enough to handle multiple 3d game types. These are all in-game screenshots, works in progress, showing various levels of artistry related to game development and the Airlight Engine.
  6. CatmanFS

    Strange lighting issues

    I had started typing that before you had replied. Thanks again for the help. The reinterpret cast thing is new to me. I've been doing all of that manually, and it's been a real pain. Most of the C++  books I have are >10 years old, and they don't go into alot of detail about stuff like that. Mostly strings and array pointers. I'll do a little research into the methods of overloading operators and such. Thanks again for the help.   Got another question. i've got 3 lights, with ambient and diffuse values set around .8 -> .9 and the scene is very dark looking. There's light, but it's not really like the lighting I'm used to. I tried to bump the ambient values up to 10 and it didn't seem to have an effect. Any ideas?
  7. CatmanFS

    Strange lighting issues

    Ahah you saved my life. I'm still a little confused about the matrix multiplying the light positions.   Right now, the UpdateAllLights() happens after the modelview matrix has been established.   Where would you reccomend that this be placed?
  8. CatmanFS

    Strange lighting issues

    I changed the update light code to this:       float amb[] = {5, 5, 5};     glLightfv(light->ID, GL_POSITION, amb );   and excluded this:     //glLightfv(light->ID, GL_POSITION, light->position.pFloat());   and it works. The problem is that I need to pull the info from the *light that the update function uses as input   is there something wrong with using:   UpdateLight( LIGHT *light)   and the pulling the info using:   light->position.pFloat();   // pFloat() returns a pointer to an array of { x, y, z} stored in the vector3   Could be that since it uses a pointer to the light struct, and then a pointer to the vector3 struct that somehow the actual data struct gets lost. I'm still confused as to why the light only works near the origin with this implementation.   Any thoughts?
  9. CatmanFS

    Strange lighting issues

    To help I uploaded a video of this effect.  
  10. I was working with a default picker for creating light objects. You would type something like:   LIGHT light0(AMBIENT);   and it would create an ambient light based off of preset values, and handle the rest of the code elsewhere.   The problem is when I was changing up the input variables for the lightfv( GL_AMBIENCE, float* ambience) I ran into a problem.   The scene lighting would only work if the viewing position was somewhere near the origin. It didn't make sence. I messed with attenuation, trying to lower it, raise, it, remove it completely, and it didnt seem to have an effect on this issue.   Light just stops working once the camera moves more than just a few units from the origin.   Now if you know of this to be some sort of aspect of OpenGL and I'm just missing a line of code somewhere, let me know. if we're not so lucky keep reading for a few samples of the code and a the details of when this started happening.     Now the code for the light is something liek this   class LIGHT {   vector3 pos; color ambience; color diffuse; color specular   float shine; float attenuation;   LIGHT(LIGHT_PRESET); void Enable() void Update()   };   I'm using a color code like this:   struct color {       float r, g, b, a;       void Set(float, float, float);       float* pFloat(); // this returns an array of 4 numbers like the ones the light needs as input };   float* color::pFloat() {        float floater[] = {r, g, b, a};       return floater; };   the vector code for light positioning works similarly   struct vector3 {      float x, y, z;      void Set(float, float, float);      float* pFloat(); };   float* color:pFloat() {        float floater[] = {x, y, z};        return floater; };     And the light takes those values as such      glLightfv(ID, GL_POSITION, position.pFloat());    glLightfv(ID, GL_DIFFUSE, diffuse.pFloat());       glLightfv(ID, GL_AMBIENT, ambient.pFloat());    The picker works, there was no problem there, but when I tried to change from setting the color values from this:   color[0] = .5; color[1] = .2; color[2] = .7;   position[0] = 10; position[1] = 15; position[0] = 10;   to something better like this   color.Set(.5, .2, .7); position.Set(10, 15, 10);   The structs for color and position have functions to easily set themselves, and also produce the float* number array that openGl likes to use for it's light and position color values.   I got this working, and I've used this concept many times, but I ran into this other lighting problem that I just don't understand.   At first it seemed like it wasn't getting the correct positional values and just placing the lights at some far distance place, then i noticed that it was placing them directly at the center, inside the test object I'm using to work with the lighting.   I output the values that would be directly sent into the openGl position input, and found them to be fine.   Does anyone have any idea why this is happening?  
  11. CatmanFS

    Something I've noticed

    You can find out which calls are obsolete and ignore them while seperating the renderer from the majority of the core game functions. The renderer and the hardware will always have to be updated, that's just the nature of the search for photorealism in 3d graphics. I would like to see more games re-made with updated graphics re-implemented on newer systems, like they did with halo. I know it's a complicated and expensive process, but if you really love to do this kind of stuff then it shouldn't be that big of a deal. Alot of people don't enjoy working with the resources and overcomming the obstacles because they're either too difficult or too complex. We shouldn't be spending all kinds of time worrying about rendering package backends, and all the intricacies of modern computer graphics. There are people that do nothing but that kind of stuff, and they've been doing it for years and know all the ins and outs. I don't claim to be a computer graphics genius, I just want to know the basics and be able to take an idea and turn it into a reality without too much of a struggle understanding obfiscated code developed by mad scientists spinning on gerbil wheels. Hey, that even gives me an idea for a game.
  12. CatmanFS

    Something I've noticed

    Who said anything about being stuck? And you seem as if you have some kind of resentment for Gl1, not to say that I don't agree with you, it's not particularly the most effective, or technologically advanced system, but it's the framework for all the other resources openGl has to offer. Besides, a good developer could use something like Gl1 and still make a great game, because it's not about making sure it meets the current standards. it's about creating a compelling experience that demands interactivity.
  13. CatmanFS

    Something I've noticed

    I believe that there is a large group of disgruntled indivuals out there that want to see things like this fail. I mean, this forum is GAMEDEV, and you're saying that the idea of creating a game engine for specific development is "retarded". I'd love to see you accomplish anything with that mindset. The point of the whole thing is that it isn't "retarded", it encourages problem solving, creative thinking, and teamwork skills. To see people with a positive mindset find things like this makes me very sick with disappointment. It's not uncommon though, how many wannabe movie companies never make it in the "real" industry? The number is probably similar to your list of game engines out there. When I started this process back in 07 I saw how there was alot of potential, and also alot of potential problems, but I always kept my goals in mind, and never used the excuse that my work and contribution wouldn't make a difference, because I know that it has. But this defeatist attitude that so many people share has to stop. I don't have the resources to organize bunches and bunches of people into specific groups. That would have to be a moderated effort supported by experienced people that had suceeded where so many fail and wish to extend to the hopeful game developers out thier thier nich for team organization.   True pioneers do what they do because they find satisfaction from it. Too many people work in this industry because they just need a job. For the love of god, don't join an industry because you want to make money. Do it because it's what you love to do, otherwise you'll just end up causing more harm than good. Everybody knows that.
  14. CatmanFS

    Something I've noticed

    When did this turn from being something fun and explorative like games are supposed to be into "free labor"? What, are we all just slaves doomed to repeat the process of work unfufilling jobs and pay bills? With a system that relies on the bottom line as it's sole progressive incentive, it's easy to see why there are so many games out there with little to no innovation or soul. It's sad to see so much talent get wiped out by a bunch of money hungry, back-breaking, slave laborers. This is my dream. This is my nightmare.
  15. CatmanFS

    Something I've noticed

    It's about programming. I could go into details about the code, like the old .obj file loading implementation that found got working, the emitter and particle code that I wrote that allows for volume emitters and field constraints, the mesh and texture implementations I wrote from scratch, the fact that I refuse to use anything but openGL 1 until I have mastered it thouroughly, the windows programming that I fear is gracously out dated, the colission and detection code I'm working on, and everything else in between, but it's about coding horrors and I figured the last thing you all would want to see is more programming examples in a forum called coding horrors. I just fear that this, and alot of other indie projects end up on the cutting room floor because they can't keep up with the fast paced industry, and I wanted that fact to be known. I care about my fellow upstart programmers and I'd like to see something done about it.   Move it wherever you want, wherever you think that people will see it. :)
  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!