日韩欧美自拍在线观看-欧美精品在线看片一区二区-高清性视频一区二区播放-欧美日韩女优制服另类-国产精品久久久久久av蜜臀-成人在线黄色av网站-肥臀熟妇一区二区三区-亚洲视频在线播放老色-在线成人激情自拍视频

JSR184規(guī)范封裝照相機(jī)的lookat方法

出處:tznhzj 發(fā)布于:2007-04-29 10:35:05

JSR-184與Mascot Capsule v3主要的不同就是關(guān)于照相機(jī)的實(shí)現(xiàn)。JSR-184支持照相機(jī)結(jié)合矩陣堆棧處理,例如,我們經(jīng)常使用transform對象移動照相機(jī)。而Mascot Capsule v3依靠”look-at”方法,這是在某些3D API里的通用方法。look-at方法從一個positiON,一個 look-at direction和一個up vector創(chuàng)建一個照相機(jī)轉(zhuǎn)換矩陣,為了方便Mascot Capsule v3與JSR-184之間的轉(zhuǎn)換,Digital Chocolate采納了Mascot Capsule v3照相機(jī)設(shè)計(jì)方法,并寫了一個支持JSR-184的包。

  在JSR-184 API規(guī)范里,NodeTransform類指定了一系列方法。這些方法有利于在JSR-184實(shí)現(xiàn)look-at方法。然而,它被認(rèn)為與JSR-184執(zhí)行說明規(guī)范有所不同,有時甚至?xí)雎赃@一系列方法。

  自己實(shí)現(xiàn)look-at方法其實(shí)并不復(fù)雜。下面的代碼例子是Digital Chocolate公司如何處理照相機(jī)的封裝設(shè)計(jì)。請注意Digital Chocolate公司在Mascot Capsule v3中使用整數(shù)來處理,而在設(shè)計(jì)更高層的游戲類設(shè)計(jì)中使用浮點(diǎn)數(shù)來處理。

/**
* Wrapper method for setting look at camera.
*
* The method requires that look and up vectors normalized.
*/
public static final void setLookAt(float a_posX, float a_posY, float a_posZ,
float a_lookX, float a_lookY, float a_lookZ,
float a_upX, float a_upY, float a_upZ)
{
 // JSR-184 version
 if (USE_M3G)
 {
  // Cross product to get side vector
  float sideX = (a_lookY * a_upZ) - (a_lookZ * a_upY);
  float sideY = (a_lookZ * a_upX) - (a_lookX * a_upZ);
  float sideZ = (a_lookX * a_upY) - (a_lookY * a_upX);

  float inv_len = 1.0f / (float) java.lang.Math.sqrt(sideX * sideX + sideY * sideY + sideZ * sideZ);
  sideX *= inv_len;
  sideY *= inv_len;
  sideZ *= inv_len;

  // make up vector perpendicular
  a_upX = (sideY * a_lookZ) - (sideZ * a_lookY);
  a_upY = (sideZ * a_lookX) - (sideX * a_lookZ);
  a_upZ = (sideX * a_lookY) - (sideY * a_lookX);
  // footnote: up is unit size because side and look are perpendicular

  sm_mtx[0] = sideX;
  sm_mtx[1] = a_upX;
  sm_mtx[2] = -a_lookX;
  sm_mtx[3] = a_posX;
  sm_mtx[4] = sideY;
  sm_mtx[5] = a_upY;
  sm_mtx[6] = -a_lookY;
  sm_mtx[7] = a_posY;
  sm_mtx[8] = sideZ;
  sm_mtx[9] = a_upZ;
  sm_mtx[10] = -a_lookZ;
  sm_mtx[11] = a_posZ;
  sm_mtx[12] = 0.0f;
  sm_mtx[13] = 0.0f;
  sm_mtx[14] = 0.0f;
  sm_mtx[15] = 1.0f;

  sm_m3gTransform.set(sm_mtx);
 }
 // Mascot version
 if (USE_MASCOT)
 {
  sm_mascotTmpVectorA.set((int)a_posX, (int)a_posY, (int)a_posZ);
  sm_mascotTmpVectorB.set((int)(a_lookX * MASCOT_ONE),(int)(a_lookY * MASCOT_ONE),(int)(a_lookZ * MASCOT_ONE));
  sm_mascotTmpVectorC.set(0, DajmGraphics.MASCOT_ONE, 0);
  sm_mascotAffineTrans.lookAt(sm_mascotTmpVectorA, sm_mascotTmpVectorB,sm_mascotTmpVectorC);
 }
}


  
關(guān)鍵詞:JSR184規(guī)范封裝照相機(jī)的lookat方法

版權(quán)與免責(zé)聲明

凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請必須注明維庫電子市場網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。

如涉及作品內(nèi)容、版權(quán)等問題,請?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

廣告
OEM清單文件: OEM清單文件
*公司名:
*聯(lián)系人:
*手機(jī)號碼:
QQ:
有效期:

掃碼下載APP,
一鍵連接廣大的電子世界。

在線人工客服

買家服務(wù):
賣家服務(wù):
技術(shù)客服:

0571-85317607

網(wǎng)站技術(shù)支持

13606545031

客服在線時間周一至周五
9:00-17:30

關(guān)注官方微信號,
第一時間獲取資訊。

建議反饋

聯(lián)系人:

聯(lián)系方式:

按住滑塊,拖拽到最右邊
>>
感謝您向阿庫提出的寶貴意見,您的參與是維庫提升服務(wù)的動力!意見一經(jīng)采納,將有感恩紅包奉上哦!