• Content count

  • Joined

  • Last visited

Community Reputation

130 Neutral

About Pasanova

  • Rank
  1. Thank you all so much for the suggestions, it is REALLY appreciated! lawnjelly you are my saviour, I added mipmaps and immediately got a white square (they were not part of the tutorial that I was using as a reference so I didn't realise they were so important). cgrant I thought that you had found the problem but strangely it works even without sending the uniform location, not sure why. Thanks again to everyone!
  2. Hi, I am trying to define my own texture but struggling to get even a simple test to work. I have been hitting my head against the wall all day unable to move past this issue (I am sure you remember the feeling) so any help would be gratefully appreciated. -> I am just seeing a black box where the texture colour should be (in this simple test I am just expecting a white box in the middle of the screen) ->There is no error from glGetError() and the shader compiles and links without giving an error. ->In the fragment shader if I comment out the texture line and instead just return a vec4  then it will display a solid colour with no problem I have posted the essential elements of the code below. Can anyone spot what I am missing?   //Position vertices and texture coordinates for a box GLfloat screen2DVertices[] = { //x, y, z //u, v -0.8f, -0.8f, 0.0f, 0.0f, 0.0f, // bottom left corner -0.8f, 0.8f, 0.0f, 0.0f, 1.0f, // top left corner 0.8f, 0.8f, 0.0f, 1.0f, 1.0f, // top right corner 0.8f, -0.8f, 0.0f, 1.0f, 0.0f, // bottom right corner }; GLushort screen2DIndices[] = { 0,1,2, // first triangle (bottom left - top left - top right) 0,2,3 // second triangle (bottom left - top right - bottom right) }; //Texture width in pixels const int TEXTURE_WIDTH = 32; const int TEXTURE_HEIGHT = 32; //3 RGB values per pixel float texturePixels[TEXTURE_WIDTH * TEXTURE_HEIGHT * 3]; //Test with all white r = g = b = 1.0f for (int i = 0; i < TEXTURE_WIDTH * TEXTURE_HEIGHT * 3; i++) { texturePixels[i] = 1.0f; } GLuint vao; glGenVertexArrays(1, &vao); glBindVertexArray(vao); // Load texture GLuint tex; glGenTextures(1, &tex); glBindTexture(GL_TEXTURE_2D, tex); glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, TEXTURE_WIDTH, TEXTURE_HEIGHT, 0, GL_RGB, GL_FLOAT, texturePixels); GLuint vbo; glGenBuffers(1, &vbo); // Create an element array GLuint ebo; glGenBuffers(1, &ebo); glBindBuffer(GL_ARRAY_BUFFER, vbo); glBufferData(GL_ARRAY_BUFFER, sizeof(screen2DVertices), screen2DVertices, GL_STATIC_DRAW); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ebo); glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(screen2DIndices), screen2DIndices, GL_STATIC_DRAW); // Specify the layout of the vertex data GLint posAttrib = glGetAttribLocation(screenShader.Program, "position"); glEnableVertexAttribArray(posAttrib); glVertexAttribPointer(posAttrib, 3, GL_FLOAT, GL_FALSE, 5 * sizeof(GLfloat), (void*)0); GLint texAttrib = glGetAttribLocation(screenShader.Program, "texcoord"); glEnableVertexAttribArray(texAttrib); glVertexAttribPointer(texAttrib, 2, GL_FLOAT, GL_FALSE, 5 * sizeof(GLfloat), (void*)(3 * sizeof(GLfloat))); while (!glfwWindowShouldClose(window)) { glfwPollEvents(); glClearColor(0.5f, 0.5f, 0.5f, 1.0f); glClear(GL_COLOR_BUFFER_BIT); screenShader.Use(); glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_SHORT, (void*)0); glfwSwapBuffers(window); } Shaders: //---------------------------Vertex Shader------------------------------------------ #version 330 core in vec3 position; in vec2 texcoord; out vec2 Texcoord; void main() { Texcoord = texcoord; gl_Position = vec4(position, 1.0); } //---------------------------Fragment Shader------------------------------------------ #version 330 core in vec2 Texcoord; out vec4 outColour; uniform sampler2D tex; void main() { outColour = texture(tex, Texcoord) * vec4(1.0f); }
  3. Moving a constant number of pixels per second

    Thanks [img][/img] Yes, its 2D I am using SDL. okay looks like that is the way to go! EDIT: Works a treat!
  4. Moving a constant number of pixels per second

    But surely you have to either move a pixel or not? You can't move 0.02 pixels?
  5. Hello Everyone,[list] [*]I update the position of my objects every time I go through my game loop [*]I have a function that calculates the number of loops per second, lets say there are 100 [*]I want to move my object at a constant rate of 30 pixels per second (which is already quite fast) [*]This means that I should move my object 0.3 pixels per loop [*]This is a problem! [/list] How do you normally get around this? Thanks!
  6. Quick SDL_ttf question

    Thank you very much for your attempt to help! I have tried both downloading a font (Eight One.ttf) and getting one from the windows fonts folder (arial) I have both these font files copied into the Release folder, Debug folder the folder where the project is and also in the folder C:\fonts It seems like I am trying every possible thing!?!? [CODE] TTF_Font* font = TTF_OpenFont("arial", 50); //Magic number if (font == NULL){ std::cerr << "Unable to load font" << std::endl; } font = TTF_OpenFont("Eight One", 50); //Magic number if (font == NULL){ std::cerr << "Unable to load font" << std::endl; } font = TTF_OpenFont("Eight One.ttf", 50); //Magic number if (font == NULL){ std::cerr << "Unable to load font" << std::endl; } font = TTF_OpenFont("C:\\fonts\\Eight One.ttf", 12); //Magic number if (font == NULL){ std::cerr << "Unable to load font" << std::endl; } font = TTF_OpenFont("arial.ttf", 12); //Magic number if (font == NULL){ std::cerr << "Unable to load font" << std::endl; } font = TTF_OpenFont("Eight One.ttf", 12); //Magic number if (font == NULL){ std::cerr << "Unable to load font" << std::endl; } font = TTF_OpenFont("./arial.ttf", 12); //Magic number if (font == NULL){ std::cerr << "Unable to load font" << std::endl; } font = TTF_OpenFont("./Eight One.ttf", 12); //Magic number if (font == NULL){ std::cerr << "Unable to load font" << std::endl; } else{ SDL_Color red; //Move this definition red.r = 255; red.g = 0; red.b = 0; textSurface_ = TTF_RenderUTF8_Blended(font,text.c_str(),red); } [/CODE] Each of these returns NULL. I am sure it is just something silly but I have initialised SDL_TTF (after I have created the screen) I am just stuck for ideas?? Its so frustrating when you just cannot move your project forward even though you know what the problem is!
  7. Quick SDL_ttf question

    I have exactly the same problem as which he has solved, but I just don't know what he means by src folder? At first I thought he might mean the folder where all the source files are but that didn't close to the answer but oh so far!
  8. Thanks Bacterius! I have just reread that section and you are exactly right! Thank you so much! It makes a lot more sense to me now It is a very good book in general even if the variable names are very misleading here!
  9. Sorry to reference such an old thread but [url=""]http://www.gamedev.n...ering-behavior/[/url] refers precisely to the thing I am having trouble understanding! In [quote name='DrunkenBrit' timestamp='1254071867' post='4533025'] //calculate the speed required to reach the target given the desired //deceleration double speed = dist / ((double)deceleration * DecelerationTweaker); [/quote] How does this calculate the speed? I just cannot understand it, besides doesn't x/a have the dimensions of time squared? I think it should be completely different, I am obviously missing something u-Initial (current) velocity required (what we want to calculate above) v - Final velocity (in this case zero) x - Distance to target "dist" in the above? a - The acceleration, in the above a = -deceleration * DecelerationTweaker? Constant acceleration equation: v^2 = u^2 + 2ax therefore u = sqrt(2*deceleration * DecelerationTweaker*x) Can anybody point out the error?