# noshel

Member

5

100 Neutral

• Rank
Newbie
1. ## [Android - 2D] How to work with different screen sizes

Yeah thats true, but the problem its about ratio. If i work agaisnt Nexus One, which has aspect ratio 1.333 (i think its was), but then i run my game on a Cell phone with (no matter resolution) aspect ratio 1.5, the view will fit into the screen but out of proportion. Thats what i dont know how to work with. Do i have to convert all my coordinates/sizes? but when? when the user just define the object? in render time? apply opengl glScale? Thank you for your answer
2. ## [Android - 2D] How to work with different screen sizes

Hi all! Im having doubts on how to work with different screen sizes. Im giving the left top corner to (0,0), and for the right bottom corner i give (screen_width, screen_height). In this way i always know the size of the screen, and keep the aspect ratio of the objects i draw. But what happens when it try it on a smaller/higher screen? well, i keep having the aspect ratio, but have a look to this example: Screen 1 (landscape): width = 800 height = 400 I draw an object in (780,380), just in the right bottom corner. See screen 2 example: Screen 2 (landscape) width = 600 height = 300 They have same aspect ratio, but if in my code i draw something on (780,380), i some screens it would be visible, and in others it wont. Im thinking in converting coordinates, for example (600*780)/800 = 585, so i have the corresponding coordinates for both screens. But i dont know if this keep the acpect ratio, and i should apply it just not to coordinates, also for object dimensions. Here is how i setup ortho view: public void seUpOrthoProjection(int w, int h) { float[] c_matrix = new float[16]; float[] p_matrix = new float[16]; engine.setScreenWidth(w); engine.setScreenHeight(h); setUpViewPort(w,h); Matrix.orthoM(p_matrix, 0, 0, w, h, 0, -1.0f, 1.0f); Matrix.setLookAtM(c_matrix, 0, 0, 0, 1, 0f, 0f, 0f, 0f, 1.0f, 0.0f); engine.setProjectionMatrix(p_matrix); engine.setCameraMatrix(c_matrix); } Maybe this is a stupid question, but i dont know what is the way to work with it. Thanks in advance! Regards
3. ## [Android] VA vs VBO performance test

Hi all, im implementing a basic 2D engine for Android, just for my own use, in order to be able to reuse the base-code between my game developments. Im neraly new on OpenGL ES 2.0, so i have some doubts about what is better to render, Vertex Arrays or Vertex Buffer Objects. Ive read some (here and other webs) about it, that VBO for static objects, so you dont have to resend data to GPU every time, and for constantly moving objects youll find better performance on Vertex Arrays. Better than believing or not, i decided to benchmark both, so here are the results for 100 squares & 400 squares rendered on screen. VA wins the test, even on static render. i can post the code i want to see it. (mseg means miliseconds, im spanish and forgot to put that in english) 100 Squares: 400 squares: Is this performance what i have to expect? I heard that dedicated memory on cellphones for VBO its the RAM, so i wont get that boost on performance. Thanks in advance! Regards
4. ## How to work with vertex correctly

All of this is for Android development. What about collisions between objects? or if i touch screen to interact? Maybe i just need to save them (vertex modifications) in some particular situations?
5. ## OpenGL How to work with vertex correctly

Hi all, Im new here (just to post, not to read ), and i come you with a doubt that its driving me nuts. Im actually doing some classes for Java/Android to draw entities. At this point, i have all methods ready, and started with "transformation" methods. And here is where my doubt comes. I pass to vertex shader the float[] array where vertex coords are defined. And i pass the multiplication of camera matrix and projection matrix. As for example, in shader language, this: [color="#2a00ff"][color="#2a00ff"]gl_Position = uMVPMatrix * vPosition; [color="#000000"]Imagine now that i want to translate than entity. If i multiplicate a translation matrix with both camera and projection ones, and pass it to the shader, when i draw i got the entity in the new position, but my local vertex array wont be updated with the new position. Imagine multiple translations thought time, the entity its shown in its new positions, but i never have its real position, because i pass it to the shader as a transformation matrix, and i pass the vertex array as the initial position. I tried modifiying the vertex array in every translation (and not multipliying translation matrix to camera/projection), and it works well, and i have the position updated, but thinking in performance/cpu cost i dont think its the best way. Now imagine this with rotation, scale, and all transformations you can imagine. Do i have to update vertex array in every translation (in order to know the real position/size/etc the entity has every moment) , or do i have to multiply multiple transformations matrix and pass them to shader, or maybe just save new (x,y) position, angle rotation, scale % , and just apply to vertex array when i need to know the real state of the entity. Maybe its an obvious question, but im new to opengl [color="#000000"]Thanks in advance! [color="#000000"]Regards