Настройка максимального расстояния OpenGL ES на Android - PullRequest
0 голосов
/ 24 июля 2010

В OpenGL ES как указать максимальное расстояние видимости?Я обнаружил, что когда я делаю:

gl.glTranslatef(0,0,-10f);

все, что я рисую, невидимо, потому что это слишком далеко от камеры.Как мне указать, что он должен оттягивать вещи дальше?

1 Ответ

5 голосов
/ 21 марта 2011

Решение вашей проблемы HappyEngineer просто возится со статическим методом GLU.gluPerspective (). Вот код, который я использую для рендеринга простого куба (просто код установки вида) в моем проекте (я тоже учусь):

public void onSurfaceChanged(GL10 gl, int width, int height)
    {
        //Reset The Projection Matrix
        Log.v("Home", String.valueOf(height));
        gl.glViewport(0, 0, width, height);     //Reset The Current Viewport
        gl.glMatrixMode(GL10.GL_PROJECTION);    //Select The Projection Matrix
        gl.glLoadIdentity();    
        //Calculate The Aspect Ratio Of The Window
        GLU.gluPerspective(gl, 45.0f, (float)width / (float)height, 0.1f, 1000.0f);

        gl.glMatrixMode(GL10.GL_MODELVIEW);     //Select The Modelview Matrix
        gl.glLoadIdentity(); 
    }

Так что, даже если вы новичок в GL, имена этих функций + параметры должны быть достаточно очевидными, если у вас есть какой-либо фон в 3D. Для интересующей функции, gluPerspective, вы передаете ссылку на ваш экземпляр GL, угол обзора или поле зрения, соотношение сторон, а затем дальнюю плоскость или максимальное расстояние обзора. Чтобы вы понимали контекст, в котором используется этот код, я использую его внутри GLWallpaperService (GL LiveWallpaper) в событии onSurfaceChanged. Для получения дополнительной информации об этом см. Следующее:

http://mindtherobot.com/blog/376/android-ui-making-a-live-wallpaper-fire-simulation/

http://www.rbgrn.net/content/354-glsurfaceview-adapted-3d-live-wallpapers

Также несколько хороших уроков по работе с glES на droid:

http://blog.jayway.com/2009/12/03/opengl-es-tutorial-for-android-part-i/

http://insanitydesign.com/wp/projects/nehe-android-ports/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...