小满(billman)个人原创,欢迎转载,转载请注明地址,小满(billman)的专栏地址http://blog.csdn.net/bill_man
在3d世界中投影也是很重要的一部分,openGLES支持两种投影方式,正交投影和透视投影。
1.正交投影
正交投影中观察者的视线是平行的,不产生进大选小的效果,设置正交投影的语句为
gl.glOrthof(-ratio,ratio,-1,1,1,10);
第一个和第二个参数为视口左右侧对应的x坐标,第三个和第四个参数为视口上下侧对应的y坐标,第五个和第六个坐标为最近端和最远端的z坐标
OpenGL不支持无限远的可视区域,视口就是屏幕上指定的矩形区域
设置的方法就是在GLSurfaceView.Renderer类中的onDrawFrame方法中设置这句即可
2.透视投影
透视投影和正交投影不同,如同现实中观测到的世界一样,会产生近大远小的效果,设置的方法和正交投影一样,也是在GLSurfaceView.Renderer类中的onDrawFrame方法中设置
设置正交的语句为
gl.glFrustumf(-ratio,ratio,-1,1,1f,10);
第一个和第二个参数为视口左右侧对应的x坐标,第三个和第四个参数为视口上下侧对应的y坐标,第五个和第六个坐标为最近端和最远端的z坐标
在left,right,top,bottom值不变的情况下,near值越小,视角越大,在开发中对这六个参数的调整非常重要
3.设置视口
在GLSurfaceView.Renderer的onSurfaceChanged方法中调用如下的方法即可
gl.glViewport(0,0,width,height);
前两个参数为视口矩形在屏幕左上侧点的坐标,后两个参数是宽度和高度
4.近大远小原理
正交投影的视景体就相当于长方体,没有近大远小的效果,所有物体都保留原有的大小和角度,而透视投影则是距离摄像机越远物体在图像中看上去就越小,离摄像机越近,则看上去越大。
参考自Android3d游戏开发技术详解与典型案例,如有错误之处,希望大家多多指正
下一篇写一下光照
分享到:
相关推荐
新版Android开发教程&笔记--基础入门一 新版Android开发教程&笔记--基础入门二 新版Android开发教程&笔记三--环境搭建与解析 新版Android开发教程&笔记四--Dalvik ADB 新版Android开发教程+笔记五--模拟器、应用1、2...
zookeeper云的学习笔记-云的学习笔记系统-云的学习笔记系统源码-云的学习笔记管理系统-云的学习笔记管理系统java代码-云的学习笔记系统设计与实现-基于ssm的云的学习笔记系统-基于Web的云的学习笔记系统设计与实现-...
Python学习笔记--皮大庆,非常适合零基础入门。对应英文版本《How to think like a computer scientist》
学习笔记HTML-css-JS.zip学习笔记HTML-css-JS.zip学习笔记HTML-css-JS.zip 学习笔记HTML-css-JS.zip学习笔记HTML-css-JS.zip学习笔记HTML-css-JS.zip 学习笔记HTML-css-JS.zip学习笔记HTML-css-JS.zip学习笔记...
新版Android开发教程&笔记--基础入门一.pdf 新版Android开发教程&笔记--基础入门二.pdf 新版Android开发教程&笔记三--环境搭建与解析.pdf 新版Android开发教程&笔记四--Dalvik ADB.pdf 新版Android开发教程+笔记五--...
云的学习笔记-云的学习笔记系统-云的学习笔记系统源码-云的学习笔记管理系统-云的学习笔记管理系统java代码-云的学习笔记系统设计与实现-基于ssm的云的学习笔记系统-基于Web的云的学习笔记系统设计与实现-云的学习...
新版Android开发教程&笔记3--环境搭建与解析
LaTex教程--latex排版学习笔记---入门提高.pdf
JDBC学习笔记--JDBC学习笔记JDBC学习笔记--JDBC学习笔记JDBC学习笔记--JDBC学习笔记JDBC学习笔记--JDBC学习笔记
新版Android开发教程&笔记--基础入门一 新版Android开发教程&笔记--基础入门二 新版Android开发教程&笔记三--环境搭建与解析 新版Android开发教程&笔记四--Dalvik ADB 新版Android开发教程+笔记五--模拟器、应用1、2...
android学习笔记--clip.pdf