導航:首頁 > 操作系統 > android3d

android3d

發布時間:2022-04-16 08:34:19

A. 在android上開發一個3D游戲需要用到哪些技術

Android開源游戲引擎是Android游戲開發的基礎,選擇一個好的Android游戲開發的引擎能讓我們更好的來開發游戲,下面就為大家簡紹幾個Android開源游戲引擎。
1、Angle
Angle是一款專為Android平台設計的,敏捷且適合快速開發的2D游戲引擎,基於OpenGL ES技術開發。該引擎全部用java代碼編寫,並且可以根據自己的需要替換裡面的實現,缺陷在於文檔不足,而且下載的代碼中僅僅包含有少量的示例教程。
2、Rokon
rokon是一款Android 2D游戲引擎,基於OpenGL ES技術開發,物理引擎為Box2D,因此能夠實現一些較為復雜的物理效果,該項目最新版本為 2.0.3 (09/07/10)。總體來說,此引擎最大的優點在於其開發文檔相當之完備,並且項目作者對反饋Bug的修正非常之神速,所以該框架的使用在目前也最為 廣泛,有人乾脆將它稱為Cocos2d-iPhone引擎的Android版(業務邏輯和編碼風格上也確實很像)。附帶一提,國內某個需要注冊會員才能下 載的Android游戲框架衍生於此框架,所以大家也不要刻板的認為收費便一定是好的,免費就一定不好,最低運行環境要求為Android 1.5。
3、LGame
LGame是一款國人開發的Java游戲引擎,有Android及PC(J2SE)兩個開發版本,目前最高版本同為0.2.6(31/07/10)。其底 層繪圖器LGrpaphics封裝有J2SE以及J2ME提供的全部Graphics API(PC版採用Graphics2D封裝,Android版採用Canvas模擬實現),所以能夠將J2SE或J2ME開發經驗直接套用其中,兩版本 間主要代碼能夠相互移植。Android版內置有Admob介面,可以不必配置XML直接硬編碼Admob廣告信息。
該引擎除了基本的音效、圖形、物理、精靈等常用組件以外,也內置有Ioc、xml、http等常用Java組件的封裝,代價是jar體積較為龐大,PC版 已突破1.2MB,Android版有所簡化也在500KB左右。此外,該引擎還內置有按照1:1實現的J2ME精靈類及相關組件,可以將絕大多數 J2ME游戲平移到Android或PC版中。唯一遺憾的是,該項目作者是個極其懶惰的傢伙,開發文檔從去年說到今年依舊沒有提供,只有游戲示例可供下 載。
4、jPCT
jPCT是一款基於OpenGL技術開發的3D圖形引擎(PC環境為標准OpenGL,Android為OpenGL ES), 以Java語言為基礎的,擁有功能強大的Java 3D解決方案。該引擎與LGame(此為2D游戲引擎)相類似,目前擁有PC(J2SE)以及Android兩個開發版本。
jPCT的最大優勢之一,就在於它驚人的向下兼容性。在PC環境中,jPCT甚至可以運行在JVM1.1環境之中,因為jPCT內部提供的圖形渲染介面完 全符合所有的Java 1.1規范(就連已經消失的Microsoft VM乃至更古老的Netscape 4 VM也不例外)。
5、Catcake
Catcake是一款跨平台的Java 3D圖形引擎,目前支持PC(J2SE)及Android環境運行(已有iPhone版規劃)。該引擎在易用性和運行性能上皆有出色的表現,支持常見的游戲開發功能,諸如精靈動畫,音頻處理和視頻播放等。
轉網路知道

B. 安卓支持3D Touch嗎安卓3D Touch功能詳解

iPhone
6S上最重要的一個功能要數3D
Touch了吧,其被稱作是多點觸控後,又一重大觸控方式。
雖說有安卓廠商已經推出了具備壓力屏的智能手機,但整體感覺跟iPhone
6S相比,還是稍遜一籌,不過現在好消息來了。
美國媒體報道稱,密歇根大學開發出一種超級暴力的軟體,其可以把蘋果上的3D
Touch帶到所有的智能手機上,其會在下個月開始測試。
對於蘋果來說,這絕對是悲慘的消息,之前他們曾強調,為了研發壓力屏花費了好幾年的時間,而現在一個小小的軟體就能破解這個技術,或許是他們沒有想到的。
實現3D
Touch的安卓會怎樣
先來看看視頻中的實際效果,當手指在屏幕上重壓時所顯示的物體被放大,松開手指物體則恢復成原樣,基本上與3D
Touch異曲同工。這就是開發者Marco
Chiappetta想到的方案,利用手機自帶的氣壓計來識別屏幕上所受到的壓力,這是從硬體層面上實現的。
據了解,視頻中使用的設備為索尼Xperia
Z3,是一款防水手機,氣壓計在其中用於檢測手機的氣密性。具體來說,在防水蓋蓋緊的情況下,當屏幕或機身感受到壓力時若氣壓計數值變化在10點以上,則手機密封程度處於正常狀態;若數值變化很小,則說明氣密性不佳。
Marco
Chiappetta已經將他的想法和源碼分享到了GitHub開源社區,對這套方案感興趣的其它開發者將能從中受到啟發,未來或許會出一些與「3D
Touch」有關的應用或游戲,但此舉是否會損壞氣壓計有待觀察。Android手機還可以這樣實現「3D
Touch」
好機智!

C. 求助,怎麼用android實現控制項的3D立體旋轉效果

packagecom.example.rotation3dview;
importandroid.content.Context;
importandroid.graphics.Camera;
importandroid.graphics.Canvas;
importandroid.graphics.Matrix;
importandroid.util.AttributeSet;
importandroid.view.MotionEvent;
importandroid.view.VelocityTracker;
importandroid.view.View;
importandroid.view.ViewDebug.HierarchyTraceType;
importandroid.view.ViewGroup;
importandroid.widget.ImageView;
importandroid.widget.Scroller;

{
privateintmCurScreen=1;
//滑動的速度
privatestaticfinalintSNAP_VELOCITY=500;
;
privateintmWidth;
privateScrollermScroller;
privateCameramCamera;
privateMatrixmMatrix;
//旋轉的角度,可以進行修改來觀察效果
privatefloatangle=90;
publicRote3DView(Contextcontext,AttributeSetattrs){
super(context,attrs);
mScroller=newScroller(context);
mCamera=newCamera();
mMatrix=newMatrix();
initScreens();
}

publicvoidinitScreens(){
ViewGroup.LayoutParamsp=newViewGroup.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.MATCH_PARENT);
for(inti=0;i<3;i++){
this.addView(newImageView(this.getContext()),i,p);
}
((ImageView)this.getChildAt(0)).setImageResource(R.drawable.page1);
((ImageView)this.getChildAt(1)).setImageResource(R.drawable.page2);
((ImageView)this.getChildAt(2)).setImageResource(R.drawable.page3);
}

@Override
protectedvoidonLayout(booleanchanged,intl,intt,intr,intb){
intchildLeft=0;
finalintchildCount=getChildCount();
for(inti=0;i<childCount;i++){
finalViewchildView=getChildAt(i);
if(childView.getVisibility()!=View.GONE){
finalintchildWidth=childView.getMeasuredWidth();
childView.layout(childLeft,0,childLeft+childWidth,childView.getMeasuredHeight());
childLeft+=childWidth;
}
}
}

@Override
protectedvoidonMeasure(intwidthMeasureSpec,intheightMeasureSpec){
super.onMeasure(widthMeasureSpec,heightMeasureSpec);
finalintwidth=MeasureSpec.getSize(widthMeasureSpec);
finalintwidthMode=MeasureSpec.getMode(widthMeasureSpec);
if(widthMode!=MeasureSpec.EXACTLY){
thrownewIllegalStateException("僅支持精確尺寸");
}
finalintheightMode=MeasureSpec.getMode(heightMeasureSpec);
if(heightMode!=MeasureSpec.EXACTLY){
thrownewIllegalStateException("僅支持精確尺寸");
}
finalintcount=getChildCount();
for(inti=0;i<count;i++){
getChildAt(i).measure(widthMeasureSpec,heightMeasureSpec);
}
scrollTo(mCurScreen*width,0);
}

privatefloatmDownX;
@Override
publicbooleanonTouchEvent(MotionEventevent){
if(mVelocityTracker==null){
mVelocityTracker=VelocityTracker.obtain();
}
//將當前的觸摸事件傳遞給VelocityTracker對象
mVelocityTracker.addMovement(event);
floatx=event.getX();
switch(event.getAction()){
caseMotionEvent.ACTION_DOWN:
if(!mScroller.isFinished()){
mScroller.abortAnimation();
}
mDownX=x;
break;
caseMotionEvent.ACTION_MOVE:
intdisX=(int)(mDownX-x);
mDownX=x;
scrollBy(disX,0);
break;
caseMotionEvent.ACTION_UP:
=mVelocityTracker;
velocityTracker.computeCurrentVelocity(1000);
intvelocityX=(int)velocityTracker.getXVelocity();
if(velocityX>SNAP_VELOCITY&&mCurScreen>0){
snapToScreen(mCurScreen-1);
}elseif(velocityX<-SNAP_VELOCITY&&mCurScreen<getChildCount()-1){
snapToScreen(mCurScreen+1);
}else{
snapToDestination();
}
if(mVelocityTracker!=null){
mVelocityTracker.recycle();
mVelocityTracker=null;
}
break;
}
returntrue;
}

@Override
publicvoidcomputeScroll(){
if(mScroller.computeScrollOffset()){
scrollTo(mScroller.getCurrX(),mScroller.getCurrY());
postInvalidate();
}
}

publicvoidsnapToDestination(){
setMWidth();
finalintdestScreen=(getScrollX()+mWidth/2)/mWidth;
snapToScreen(destScreen);
}

publicvoidsnapToScreen(intwhichScreen){
whichScreen=Math.max(0,Math.min(whichScreen,getChildCount()-1));
setMWidth();
intscrollX=getScrollX();
intstartWidth=whichScreen*mWidth;
if(scrollX!=startWidth){
intdelta=0;
intstartX=0;
if(whichScreen>mCurScreen){
setPre();
delta=startWidth-scrollX;
startX=mWidth-startWidth+scrollX;
}elseif(whichScreen<mCurScreen){
setNext();
delta=-scrollX;
startX=scrollX+mWidth;
}else{
startX=scrollX;
delta=startWidth-scrollX;
}
mScroller.startScroll(startX,0,delta,0,Math.abs(delta)*2);
invalidate();
}
}

privatevoidsetNext(){
intcount=this.getChildCount();
Viewview=getChildAt(count-1);
removeViewAt(count-1);
addView(view,0);
}

privatevoidsetPre(){
intcount=this.getChildCount();
Viewview=getChildAt(0);
removeViewAt(0);
addView(view,count-1);
}

privatevoidsetMWidth(){
if(mWidth==0){
mWidth=getWidth();
}
}
}
/*
*當進行View滑動時,會導致當前的View無效,該函數的作用是對View進行重新繪制調用drawScreen函數
*/
@Override
protectedvoiddispatchDraw(Canvascanvas){
finallongdrawingTime=getDrawingTime();
finalintcount=getChildCount();
for(inti=0;i<count;i++){
drawScreen(canvas,i,drawingTime);
}
}

publicvoiddrawScreen(Canvascanvas,intscreen,longdrawingTime){
//得到當前子View的寬度
finalintwidth=getWidth();
finalintscrollWidth=screen*width;
finalintscrollX=this.getScrollX();
//偏移量不足的時
if(scrollWidth>scrollX+width||scrollWidth+width<scrollX){
return;
}
finalViewchild=getChildAt(screen);
finalintfaceIndex=screen;
finalfloatcurrentDegree=getScrollX()*(angle/getMeasuredWidth());
finalfloatfaceDegree=currentDegree-faceIndex*angle;
if(faceDegree>90||faceDegree<-90){
return;
}
finalfloatcenterX=(scrollWidth<scrollX)?scrollWidth+width
:scrollWidth;
finalfloatcenterY=getHeight()/2;
finalCameracamera=mCamera;
finalMatrixmatrix=mMatrix;
canvas.save();
camera.save();
camera.rotateY(-faceDegree);
camera.getMatrix(matrix);
camera.restore();
matrix.preTranslate(-centerX,-centerY);
matrix.postTranslate(centerX,centerY);
canvas.concat(matrix);
drawChild(canvas,child,drawingTime);
canvas.restore();
}

D. Android 3D游戲開發技術詳解與典型案例的本書作者

吳亞峰,本科畢業於北京郵電大學,後留學澳大利亞卧龍崗大學取得碩士學位,1998年開始從事Java應用的開發,有10多年的Java開發與培訓經驗。主要的研究方向為Open GL ES、手機游戲、Java EE、搜索引擎,同時為手機游戲、Java EE獨立軟體開發工程師,並兼任百納科技Java培訓中心首席培訓師。從2000年來為數十家著名企業培養了上千名軟體開發人員,曾編寫過《Java SE6.0編程指南》、《Java程序員職場全攻略——從小工到專家》、《Android2.0游戲開發實戰寶典》、《Android核心技術與實例詳解》等多本暢銷技術書籍。2008年初開始關注Android平台下的應用開發,並開發出一系列優秀的Android應用程序與游戲。
蘇亞光,哈爾濱理工大學碩士,有軟體領域8年的從業經歷,在軟體開發和計算機教學方面有著豐富的經驗。早期主要從事底層軟體的設計與開發工作,現主要從事ARM平台下嵌入式程序的設計、開發等方面的工作。同時,在SOA領域也做了很多有益的工作。
另外,昊燃、方振宇、陳冠佐、傅奎、陳勤、梁洋洋、畢夢飛、陳慶、柴相花、陳非凡、陳華、陳嵩、承卓也參與了本書的編寫。在此表示感謝!
致謝
本書在編寫過程中得到了唐山百納科技有限公司Java培訓中心的大力支持,同時孫佳佳、李光正、蔣召志、鄭安、田永宏、李建寶、王海峰及作者的家人為本書的編寫提供了很多幫助,在此表示衷心的感謝!
由於編者的水平和學識有限,且書中涉及的知識較多,難免有疏漏之處,敬請廣大讀者朋友批評指正,並多多提出寶貴意見。
編者

E. 安卓手機有沒有能做3d模型的軟體

手機端實現的建模技術已經支持3D掃描、數字雕刻、3D列印等高端技術,指尖觸摸和拖動創很精確,對用戶來說,觸摸界面更加友好,適合隨時隨地發揮創意。以下是手機上的3D建模軟體總結:

PhotoSynth for iPhone

一款微軟開發的全景拍攝應用,該應用會判斷出照片和照片之間的共同點,快速建構將各種不同角度和來源照片的360度平面全景照片。

F. 誰推薦幾款比較好玩的安卓3D游戲,謝謝啦!

3D賽車類的《都市賽車6》《極限方程式》《3D極限摩托》《雷霆極速2》《終極跑車》
3D射擊類的《黑幫時代》《太平洋飛虎隊完整版 》《星際閃電戰》《3D坦克1944 》《熱血機甲》
3D大作《永恆勇士》《不朽的神跡》《斯巴達英雄》《芒刺在身高清版》《地牢獵人2》
建議到愛扒啦下載,還有視頻解說呢....這個網站更新也快,游戲應用都很多。

G. 用Android能不能繪制3D人物模型

android不能繪制3D人物模型。需要使用用建模軟體(3D MAX)畫然後在程序中讀出來渲染出來,先畫出人物模型,然後可以在android中載入出來。android是載入的人物模型的文件。
更多關於android 3D的知識請來參考android學習手冊,android學習手冊包含9個章節,108個例子,源碼文檔隨便看,例子都是可交互,可運行,源碼採用android studio目錄結構,高亮顯示代碼,文檔都採用文檔結構圖顯示,可以快速定位。360手機助手中下載,圖標上有貝殼。

H. 安卓手機3D桌面怎麼弄

安卓桌面美化軟體推薦: Regina美化3D桌面漢化版 想讓自己的手機桌面變成3D酷炫的樣式嗎?還在為SPB Shell 3D對手機的破解不完美而遺憾嗎?今天這款新的3D美化桌面將彌補你的遺憾,讓你感受到毫不示弱的極致3D酷炫桌面效果。 主題美化 aHome Lite Console是一款集更改圖標,添加桌面插件,更換手機主題的強大應用軟體。 下載地址: http://anzhuoyuan.com/?s=%E7%BE%8E%E5%8C%96

I. Android上怎麼建3D模型有什麼3D建模軟體么

做3d設計的軟體很多,像AutoCAD、Solidworks、3DS MAX、Maya、Softimage
XSI、Xara3D等等,一般室內模型、展覽模型設計最常用的是3dmax、CAD,另外,動畫設計會用maya、3DMAX,機械設計一般用UG、Solidworks、CAD等。如果想學3d模型設計,建議去模型雲上多看看,裡面有很多設計師的作品,對製作的軟體也有相應的說明。

J. android裡面3d動畫怎麼做啊,求大神指導

是單純說動畫怎麼做還是說安卓裡面有交互功能的動畫怎麼做?
單純做3D動畫,你懂得MAYA 3DMAX等軟體的操作即可,熟悉建模、貼圖、綁定、動畫、燈光渲染等模塊,懂得動畫的運動規律。
如果是帶交互的動畫,這就涉及更廣了,像游戲的話,首先你必須得會寫代碼,會使用類似Angle 2D engine 、Rokon、Catcake、jPCT、U3D等等一些游戲引擎。然後當然,你會做3D動畫。

閱讀全文

與android3d相關的資料

熱點內容
魔獸60宏命令大全 瀏覽:473
php志願者網站源碼 瀏覽:870
貿易pdf 瀏覽:495
dbug命令 瀏覽:351
開逛app如何加好友 瀏覽:958
ftpdos命令下載文件 瀏覽:75
華為如何打開語音伺服器 瀏覽:242
python中的idle 瀏覽:1000
五軸聯動數控編程 瀏覽:965
換一台電腦如何遠程雲伺服器 瀏覽:132
阿里雲怎麼買雲伺服器 瀏覽:664
java提取文字 瀏覽:97
阿里雲伺服器同人賬號問題 瀏覽:420
5分鍾解壓軸題 瀏覽:341
安卓桌面二級文件夾 瀏覽:188
eps文檔加密 瀏覽:261
手機怎麼做pdf 瀏覽:162
ug曲面pdf 瀏覽:279
液化氣還是壓縮氣 瀏覽:950
阿里雲公共ntp伺服器地址 瀏覽:991