Re: [問題] 投影片如何嵌入3D物件(.u3d檔)?

看板LaTeX作者 (Shovel Bum)時間6年前 (2017/07/14 14:57), 6年前編輯推噓2(200)
留言2則, 2人參與, 最新討論串2/2 (看更多)
原文恕刪~~ 自己的問題自己答! 來個簡單的教學文。 雖然大部份來這個版的人應該都是要製作可以印出來的PDF或是比較簡單的簡報, 會需要用到把3D物件嵌在PDF內的人應該是極少數吧。 ----------- 緣 ----------- 起 ----------- 廢 ----------- 言 ----------- 最開始,我是想要把3D模組分享給沒有安裝特定軟體的老闆看,所以才把腦筋動 到了3DPDF上。當時沒有成功,只能等老闆出現的時候,直接拿我的電腦給他看。 後來事情演變到了需要在簡報的時候展示,而會場的電腦是不太可能有裝3D軟體。 如果要在報告前搞這些,我想會麻煩到太多人,報告的時候轉換軟體也會影響報告 的流暢性。 目前PowerPoint好像已經支援3D物件的嵌入,但是我個人沒有這套軟體,所以不 知道好不好用。 個人使用的是Libreoffice,而裡面的Impress簡報軟體雖然也號稱支援3D物件, 但是,--非--常--難--用-- 首先,它可以支援3D檔案格式有3種:json, dae以及kmz. 如果是用sketchup建 立3D物件(kmz),我想應該沒有什麼太大的問題吧。但是我用的是從立體掃描還原 的3D物件,而我只會用meshlab把obj轉成dae或json。 Impress的3D物件置入也很好操作,只是不知道為什麼,我用的時候就是會莫名其 妙的一直狂當(可能跟筆電效能有關)。 但,如果只是這樣也就算了。有時候還會置入失敗。所以我覺得用這樣太冒險。 所以還是乾脆用pdf格式比較安全。畢竟Libreoffice還可能有轉成ppt格式後排版 跑掉的風險。 如果也有人遇到製作3DPDF的需求,可以參考一下我用LaTeX製作3DPDF的說 明。 ----------- 正 ----------- 文 ----------- 開 ----------- 始 ----------- 不管是用什麼軟體製作3DPDF,前提就是要嵌入的3D物件必須是特定的格式: u3d或是prc。但是大部份的3D物件都是obj、ply這類的格式,所以要先解決 格式問題,也就是要轉檔。 前者可以用免費的3D軟體:meshlab去轉(export mesh as,下拉格式的地方選 u3d)。但是後者好像就需要用asympotote這類程式去繪製。 有趣的是,meshlab可以把檔案格式轉成u3d,但是卻沒有辦法開啟u3d檔。 這一點讓我在遇到LaTex出現要我確認u3d是否有效的錯誤提示的時候非常頭痛。 (啊就沒有軟體可以開,是要怎麼確認啦)。 如果你手邊的3D物件還不是u3d格式,請先用軟體轉好,然後放在要製作pdf的 同一個資料夾中(跟內嵌圖片一樣)。下面說明我會先用網路上找得到的u3d檔, 方 便大家練習。 因為這裡只是簡單教學,所以我就直接說明怎麼用TeXworks裡的pdfLaTeX壓成 單一pdf。 如果是有做簡報需求的人,我之前是用Beamer(一樣用TeXworks裡的XeLaTex) 來寫。原則上語法沒有什麼差別,所以就自己嘗試看看囉。有問題再問吧。 因為是土法煉鋼,所以參考了一些不同的寫法。還有待版上神人修改。 製作3DPDF是一個兩階段的程序,所以要寫兩個tex檔。(你也可用第一階段就好) 之所以需要兩個階段是因為在將3D物件放進PDF前,你必須要先算好視角(觀看的 角度)。所以有需要先寫一個PDF來調整跟計算最佳視角的座標。當然,如果你的 3D物件已經設好視角(應該是可以在3D軟體中先設好),你就可以直接置入(下詳)。 我的方法需要用到media9這個套件(請先下載)。先前找到的movie15套件教學也 因為這個套件已經完全被media9取代了,所以也不需要再研究了(雖然我之前還是 先會用movie15才轉用media9)。 這裡我先用網路上可以找到的u3d檔來進行說明(dice.u3d), 如果自己有u3d檔就用 自己的,雖然我想這個檔應該是人畜無害,但是網路上還是小心點好。沒有u3d檔, 有想要練習的人,可從下列網址取得dice.u3d: http://www.filewatcher.com/m/dice.u3d.160672-1.html ),或者自己google看看 有沒有可用的u3d檔。 測試視角的pdf腳本如下: \documentclass{article} %%文件的格式沒有限定。 \usepackage{media9} %% 導入media9套件。 %% 如果內文要有中文就自己再加套件。 \title{3DPDF Preparation: Viewing Angle} %% 給個標題(非必要) \begin{document} \date{} %% 日期跟作者那些的也都可以不用。 \maketitle \begin{figure}[h] \centering %% 圖像置中 \includemedia[ %% 開始置入 width=0.5\linewidth,height=0.5\linewidth, %% 設定物件顯示大小 activate=pageopen, %% 指定3D模組啟動的條件[註1] 3Dtoolbar, %% 顯示3D工具列(建議使用) 3Dmenu %% 在右鍵選單中新增3個功能(計算視角必要) ]{}{dice.u3d} %% 用完整的檔案名 \end{figure} \end{document} [註一]: 這個選項一共有3個,“onclick”就是點擊後啟動,“pageopen”跟 “pagevisible”則是開啟即啟動,而如果3D物件不是在第一頁,原作者建議 使用“pagevisible”。 跑完後,一定要用外部的pdf閱讀軟體開,我是用Adobe Acrobat Reader DC。 (確認一下自己用的軟體版本是否支援3DPDF)。DC的預設是先停用3D內容, 問你是否信任此文件,你可以選擇僅信任一次或永遠信任。如果要重複使用就可 以選永遠信任,不然它每次都會問。 如果用的是dice.u3d檔的話,打開檔案後應該就會看到一個大黃點。那是骰子上 的一點。如果是用自己的檔案,你看到的可能不是你熟悉的視角。它可能是你之 前存檔的視角,也有可能什麼都看不到(視角過近或過偏)。 這時就要按右鍵讓選單出現。之前因為加入了“3Dmenu”這個選項,所以選單中 會多出3個英文的選項。其中我們會用到的是第一個:Generate Default View。 點選後,DC會跳出一個視窗。如果我們先不管這個視窗,直接把它關掉的話,你 會發現你的3D物件已經自動調成正常的視角了。(當然,或許可能不是你要的視角) 如果你不介意每次開檔案都要重複上述動作的話,那麼你就可以在上述的基礎上去 建立自己的文件。 不過,我會建議還是在原始碼中把視角固定下來。也就是製作的第二階段。 固定視角,一來可以免除每次開檔後要做很多重複的動作, 二來,自動產生的視角不見的是你要的。 要固定成預設視角,就在上個步驟跳出視窗後,把視窗下半出現的原始碼複製到腳 本中(建議另外開一個腳本檔)。 這裡會給你2個視角座標數據,3Dc2c和3Droo以及一個光線的選項(3Dlights)。 如果想要特定視角,則可以先調整好後,再用右鍵選單中的第二個新選項“Get Current View”顯示調整過的視角座標。(你也許會注意到,如果把下半的原始碼往上 拉到頭,還是可以看到一樣的預設視角座標數據)。通常調整過的視角座標會多一組 “3Droll”,但其它就都一樣了。 固定視角的原始碼跟剛才一樣就是: %% 上面省略 %% \includemedia[ %% 開始置入 width=0.5\linewidth,height=0.5\linewidth, %% 設定物件顯示大小 activate=pageopen, %% 指定3D模組啟動的條件 3Dtoolbar, %% 顯示3D工具列(建議使用) 3Dc2c=0.008148513734340668 -0.9987651109695435 -0.04900982975959778, 3Droo=26.768520991804422, %% 這裡就直接貼上數據就好了 3Dlights=Headlamp %% 光線的調整可以參考說明書 ]{}{dice.u3d} %% 下面省略 %% ----------- 正 ----------- 文 ----------- 結 ----------- 束 ----------- 原則上,整個編碼並不是特別複雜,我一開始應該是卡在視角跟新、舊指令的轉換上。 現在回頭看media9作者寫的說明書,就會發現一開始真的走太多冤枉路。 對了,給要做簡報的人一點小建議: 3D檔太大的時候,最好還是先把檔案縮小,不然會跑很久。 寫LaTeX的時候也先把別的部份寫好,不然每次都要跑一陣子。 簡報之前要多練習,因為翻到3D的那一頁會delay。最好先按,不然要聽眾跟你一起 等3D物件啟動,會很尷尬。 希望這個簡單的說明對於大家有幫助。 謝謝。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 210.63.212.253 ※ 文章網址: https://www.ptt.cc/bbs/LaTeX/M.1500015431.A.EB3.html ※ 編輯: Ricey (210.63.212.253), 07/14/2017 14:59:42

07/14 19:00, , 1F
推!
07/14 19:00, 1F

07/15 13:40, , 2F
詳細推,
07/15 13:40, 2F
文章代碼(AID): #1PQ6j7wp (LaTeX)
文章代碼(AID): #1PQ6j7wp (LaTeX)