① 求幫寫一個在android手機上顯示obj文件
下面的List可用ArrayList替換
InputStream input;
BufferedReader reader;
try
{
List verticeLines = new List();
List textureLines = new List();
List normalLines = new List();
List verticeIndiceLines = new List();
List textureIndiceLines = new List();
List normalIndiceLines = new List();
input=new FileInputStream(data);
reader = new BufferedReader(new InputStreamReader(input));
String line = null;
while((line = reader.readLine()) != null)
{
//?狦琌猔稈┪?フ膥尿鉻筁
if(line.startsWith("//") ||line.startsWith("#")|| line.trim().equals(""))
{
continue;
}
String SPACE=" ";
String SLASH="/";
String[] st=RemoveNull(line.split(SPACE));
String lineType = st[0];
if(lineType.equals("v"))
{//郴翴畒夾
verticeLines.Add(st[1]);
verticeLines.Add(st[2]);
verticeLines.Add(st[3]);
}
else if(lineType.equals("vt"))
{//郴翴?借畒夾
textureLines.Add(st[1]);
textureLines.Add(st[2]);
}
else if(lineType.equals("vn"))
{//郴翴猭?秖
normalLines.Add(st[1]);
normalLines.Add(st[2]);
normalLines.Add(st[3]);
}
else if(lineType.equals("f"))
{//?à?癸萊?郴翴??借?猭?秖
//?艙畒夾
String v1=st[1];
String v2=st[2];
String v3=st[3];
String[] st1=v1.split(SLASH);
String[] st2=v2.split(SLASH);
String[] st3=v3.split(SLASH);
//頂點
verticeIndiceLines.Add(st1[0]);
verticeIndiceLines.Add(st2[0]);
verticeIndiceLines.Add(st3[0]);
//紋理
textureIndiceLines.Add(st1[1]);
textureIndiceLines.Add(st2[1]);
textureIndiceLines.Add(st3[1]);
//正常
normalIndiceLines.Add(st1[2]);
normalIndiceLines.Add(st2[2]);
normalIndiceLines.Add(st3[2]);
}
}
//郴翴畒夾:3?????郴翴
int indicesSize=verticeIndiceLines.Count();
indices=new short[indicesSize];
int verticeSize=indicesSize*3;
vertices=new float[verticeSize];
//?借畒夾:埃3т?碭?郴翴??2Τㄢ?畒夾
int textureSize=indicesSize*2;
textures=new float[textureSize];
//猭?秖:–?郴翴常Τ?艙猭?秖??3Τ3?よ??秖
int normalSize=indicesSize*3;
normals =new float[normalSize];
for(int i=0;i
{
//郴翴
indices[i]=(short)i;
int indice=Integer.valueOf(verticeIndiceLines.Item(i))-1;
//郴翴畒夾
vertices[i*3]=Float.valueOf(verticeLines.Item(indice*3));
vertices[i*3+1]=Float.valueOf(verticeLines.Item(indice*3+1));
vertices[i*3+2]=Float.valueOf(verticeLines.Item(indice*3+2));
if(!textureIndiceLines.Item(i).equals("")){
int textureIndice=Integer.valueOf(textureIndiceLines.ItemOrDefault(i, "0"))-1;
textures[i*2]=Float.valueOf(textureLines.ItemOrDefault(textureIndice*2,"0"));
textures[i*2+1]=Float.valueOf(textureLines.ItemOrDefault(textureIndice*2+1,"0"));
System.out.println(textureIndiceLines.Item(i));
}
//猭?秖畒夾
int normalIndice=Integer.valueOf(normalIndiceLines.Item(i))-1;
normals[i*3]=Float.valueOf(normalLines.Item(normalIndice*3));
normals[i*3+1]=Float.valueOf(normalLines.Item(normalIndice*3+1));
normals[i*3+2]=Float.valueOf(normalLines.Item(normalIndice*3+2));
}
}
catch (FileNotFoundException e)
{
e.printStackTrace();
}
catch (Exception e)
{
e.printStackTrace();
}
② 蘋果11給安卓手機發微信為什麼有個OBJ
很正常啊!因為不正兩個本來就是不一樣的系統。有時候會出現一定的八個。
③ 華為手機保存圖片顯示obj
因為它不在我的圖片里,如QQ瀏覽器網上保存圖片,其保存在相應的QQBrower之圖片收藏里
④ 微信打字前面帶obj什麼意思
一種文本文件,程序編譯時生成的中間代碼文件目標文件。obj文件是3D模型文件格式。由Alias|Wavefront公司為3D建模和動畫軟體"Advanced Visualizer"開發的一種標准,適合用於3D軟體模型之間的互導,也可以通過Maya讀寫。
OBJ3.0文件格式支持直線(Line)、多邊形(Polygon)、表面(Surface)和自由形態曲線(Free-form Curve)。直線和多邊形通過它們的點來描述,曲線和表面則根據它們的控制點和依附於曲線類型的額外信息來定義,這些信息支持規則和不規則的曲線,包括那些基於貝塞爾曲線(Bezier)、B樣條(B-spline)、基數(Cardinal/Catmull-Rom)和泰勒方程(Taylor equations)的曲線。
OBJ文件Alias|Wavefront公司為它的一套基於工作站的3D建模和動畫軟體"Advanced Visualizer"開發的一種標准3D模型文件格式,很適合用於3D軟體模型之間的互導,也可以通過Maya讀寫。
比如在3dsMax或LightWave中建了一個模型,想把它調到Maya裡面渲染或動畫,導出OBJ文件就是一種很好的選擇。目前幾乎所有知名的3D軟體都支持OBJ文件的讀寫,不過其中很多需要通過插件才能實現。
⑤ 抖音上面發現OBJ什麼意思
抖音上面發現OBJ是3D模型文件格式。由Alias|Wavefront公司為3D建模和動畫軟體「Advanced Visualizer」開發的一種標准,適合用於3D軟體模型之間的互導,也可以通過Maya讀寫。
很適合用於3D軟體模型之間的互導,也可以通過Maya讀寫。比如在3dsMax或LightWave中建了一個模型,想把它調到Maya裡面渲染或動畫,導出OBJ文件就是一種很好的選擇。目前幾乎所有知名的3D軟體都支持OBJ文件的讀寫,不過其中很多需要通過插件才能實現。
(5)安卓手機為什麼顯示obj擴展閱讀:
(1)OBJ文件不包含動畫、材質特性、貼圖路徑、動力學、粒子等信息。
(2)OBJ文件主要支持多邊形(Polygons)模型。雖然也支持曲線(Curves)、表面(Surfaces)、點組材質(Point Group Materials),但Maya導出的OBJ文件並不包括這些信息。
(3)OBJ文件支持三個點以上的面,這一點很有用。很多其它的模型文件格式只支持三個點的面,所以導入Maya的模型經常被三角化了,這對於我們對模型進行再加工甚為不利。
⑥ 蘋果手機微信發文字給別人後面為什麼總是有OBJ
突然這個字元肯定是發文字時碰到手機的表情包了,所以才會出現這個的。
⑦ 為什麼蘋果11發朋友圈後面有兩個符號裡面寫著OBJ蘋果手機看不到,只安卓手機可以看到這是怎麼回事
那是兩個特殊字元,蘋果手機看不見那是因為蘋果手機把這些字元屏蔽掉了。安卓手機可以顯示而已。這段文字是你復制粘貼的吧!如果是自己打上去的字應該不會出現這些字元哦!
⑧ 誰知道這種問題前面有個obj是什麼意思
OBJ=object,即是一個對象的意思。
復制的時候復制了圖片,圖片在僅文字的編輯框里無法顯現出來,就會出現obj字元,一般會是一張圖片,只是當前顯示的控制項不支持該對象的顯示,或者從其他地方復制、上傳時沒有獲得對象的具體內容,但是當前顯示控制項知道這是一個對象,所以就給用戶顯示一個OBJ。
用戶可以嘗試:在一個支持圖文編輯的窗口中(例如QQ郵箱,寫郵件)添加一個圖片還有一些文字,然後利用輸入法進行全選,粘貼到QQ聊天的輸入框中,此時就會顯示OBJ的具體內容。
obj的其他引申含義:
「obj」原本是一個文件格式,是3D模型文件格式,適合用於3D軟體模型之間的互導,但是之後在QQ聊天中有網友也發現了對方會在一句話的結尾打出「obj」的字樣,不了解的人都很難理解是什麼意思,其實這就是一種網路用語,只有腦洞大開的人才能理解其中的意思。
還有網友稱「obj」也可以打成「objk」,「o」 和「k」在兩邊,中間是「bj」,這個詞可以理解為「沒意思」,也可以通過字面理解為「jb」,「jb」反向加「ok」,所以就是不「ok」的意思。
⑨ 聊天時後面有個obj什麼意思
這是一種文本文件,程序編譯時生成的中間代碼文件目標文件,一般是程序編譯後的二進制文件,再通過鏈接器和資源文件鏈接就成可執行文件了。
OBJ只給出了程序的相對地址,而可執行文件是絕對地址。
obj文件特點:OBJ文件是一種3D模型文件。不包含動畫、材質特性、貼圖路徑、動力學、粒子等信息。
OBJ文件主要支持多邊形(Polygons)模型。雖然也支持曲線(Curves)、表面(Surfaces)、點組材質(Point Group Materials),但Maya導出的OBJ文件並不包括這些信息
OBJ文件支持三個點以上的面,這一點很有用。
很多其它的模型文件格式只支持三個點的面,所以導入Maya的模型經常被三角化了,這對於我們對模型進行再加工甚為不利。
(9)安卓手機為什麼顯示obj擴展閱讀:
OBJ文件支持法線和貼圖坐標。在其它軟體中調整好貼圖後,貼圖坐標信息可以存入OBJ文件中。
這樣文件導入Maya後只需指定一下貼圖文件路徑就行了,不需要再調整貼圖坐標。
obj文件基本結構:OBJ文件不需要任何種文件頭(File Header),盡管經常使用幾行文件信息的注釋作為文件的開頭。
OBJ文件由一行行文本組成,注釋行以符號「#」為開頭,空格和空行可以隨意加到文件中以增加文件的可讀性。
有字的行都由一兩個標記字母也就是關鍵字(Keyword)開頭,關鍵字可以說明這一行是什麼樣的數據。
多行可以邏輯地連接在一起表示一行,方法是在每一行最後添加一個連接符()。注意連接符()後面不能出現空格或Tab格,否則將導致文件出錯。