• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.


  • Content count

  • Joined

  • Last visited

Community Reputation

138 Neutral

About Kepakiano

  • Rank
  1. Thank you for your answers.   "Of course, it all depends on your exact situation, but are you sure that it is worth precalculating and storing the values at all rather than just calculating them on the fly per fragment?"   My 'boss' asked the same question :D   Okay, this is what I'm doing: http://pastebin.com/YXP6j9vN Short description: "grid" defines a distorted 2D grid of points like this one: (-1.0 1.0) (0.0 1.0) (1.0 1.0) (-1.0 0.0) (-0.2 0.0) (1.0 0.0) (-1.0 -1.0) (0.0 -1.0) (1.0 -1.0) Note: These four quads are not enough, I need at least 16x16, maybe even 24x24 or 32x32. So, for every fragment, I need to find out in which one of the quads the current fragment lies (lines 88 - 105, pretty naive implementation with linear complexity) by dividing the current quad into two triangles and calculating the point's barycentric coordinates in this triangle (lines 19 - 30). If the correct quad is found, the point will be bilinearly interpolated and the value will be returned. The resulting vec2 is what I want to store for every fragment.   I'm pretty sure a texture/SSBO lookup would be faster than 1-16 (assuming I come up with a faster way to find the correct quad) point-in-triangle checks and one bilinear interpolation, but I have no experience in that matter. What do you think?   @samoth: The second is the case. I chose the SSBO, because of its ability to store arrays of arbitrary length, which would be nice. My target platform (a virtual reality lab) fully supports OpenGL 4.3 :) But you are probably right: The drawbacks outweigh the benefits compared to a texture.   The lab's projectors have a resolution of 1400x1050 pixels, so the buffer would need 1400*1050*8 Bytes (two floats per pixel) = 11,760,000 Bytes = 11.21 MiB of space which is probably too much for the L1 cache of a GTX 460 :/   So, (assuming I really precalculate) you think I should go for a texture?
  2. Hey there,   I am writing a fragment shader, which needs two float values with some additional information for every fragment it calculates. These values will be calculated at the beginning of the program and won't change any time, so they could be stored in a 2D or 1D lookup table/array.   My first two choices for this would be: 1. rendering the values in a separate fragment shader to a 2D GL_RG32F texture or 2. calculating the values in a compute shader and store them in a vec2 array in a shader storage buffer object (the size of table is not known at compile time!).   What is the best/fastest way to store them and look them up? Is there another fast method?   Thank you for your help.
  3. This is what I would do: http://pastebin.com/fr4aU0cw (needs C++11) 1. Generate a random unit vector 2. Make it orthogonal to your given vector by using the Gram-Schmidt Process (http://en.wikipedia.org/wiki/Gram%E2%80%93Schmidt_process) Edit: The snippet does not check, whether v and random u are linearly independent.
  4. This thread can be closed.   If someone comes across the same problems and finds this thread, here is what I did: My previous post suggested that I wanted a perspective projection of the texture onto the quad, which I don't. This is what I wanted:   -> A rectangular texture mapped onto a quadrilateral via bilinear interpolation. Since OpenGL does not provide any means to do this in the FFP (afaik), it is achieved in a fragment shader using the calculations from this thread: http://www.gamedev.net/topic/538963-interpolation-between-arbitrary-quadrilaterals/#entry4994411
  5. Hi there, after two days of research and trial and error, I give up and need help. I'm trying to map a texture (not necessarily quadratic or a size of 2^x) to an arbitrary convex quadrilateral. However, since the OpenGL pipeline divides the quad into two triangles, there is an ugly seam Original texture: Texture, if the upper left point is set to (0, 0.5): Currently, the texture coordinates are mapped in the most naive way:305 glTexCoord4f(0.0f, 1.0f, 0.0f, 1.0f);306 glVertex3f(_wall_properties.matrix[y][x].first, _wall_properties.matrix[y][x].second, 0.0f);307 308 glTexCoord4f(0.0f, 0.0f, 0.0f, 1.0f );309 glVertex3f(_wall_properties.matrix[y + 1][x].first, _wall_properties.matrix[y + 1][x].second, 0.0f);310 311 glTexCoord4f(1.0f, 0.0f, 0.0f, 1.0f);312 glVertex3f(_wall_properties.matrix[y + 1][x + 1].first, _wall_properties.matrix[y + 1][x + 1].second, 0.0f);313 314 glTexCoord4f(1.0f, 1.0f, 0.0f, 1.0f);315 glVertex3f(_wall_properties.matrix[y][x + 1].first, _wall_properties.matrix[y][x + 1].second, 0.0f);I have already read tons of stuff on the topic, including Cass' explanation at http://www.xyzw.us/~cass/qcoord/. Strangely, changing the q-coordinate of the textures does not have any effect on the texture. Besides, I wouldn't know, how to calculate the correct q. I also tried changing the texture matrix following this post: http://www.gamedev.net/topic/419296-skewedsheared-texture-mapping-in-opengl/ with unsatisfying results. Would a correct texture matrix solve the problem as this post http://blogs.agi.com/insight3d/index.php/2009/11/20/trapezoidal-texture-projection-with-opengl/ proposes?
  6. I know this is a VERY old thread, but I encountered this problem as well and found the only solution here. Unfortunately, I think erissian's formula is flawed. There is a small error which kept me busy for a while, but I solved it and thought I could share the solution: erissian wrote: M[sub]x[/sub] = (1-s)A[sub]x[/sub] + st(A-D+C-B)[sub]x[/sub] - t(A-D)[sub]x[/sub] M[sub]y[/sub] = (1-s)A[sub]y[/sub] + st(A-D+C-B)[sub]y[/sub] - t(A-D)[sub]y[/sub] But it should be: M[sub]x[/sub] = [color=#ff0000]sB[sub]x[/sub][/color]+(1-s)A[sub]x[/sub] + st(A-D+C-B)[sub]x[/sub] - t(A-D)[sub]x[/sub] M[sub]y[/sub] = [color=#ff0000]sB[sub]y[/sub][/color]+(1-s)A[sub]y[/sub] + st(A-D+C-B)[sub]y[/sub] - t(A-D)[sub]y[/sub] This simplifies to these coefficients of the quadratic equation at[sup]2[/sup] + bt + ct = 0 a = C?D+D?B+A?C+B?A b = M?C+D?M+B?M+M?A+C?A+B?D+2(A?B) c = M?B+A?M+B?A I don't know if these are the same values diegovar calculated in the end, but they work