python3的3D实战-基于panda3d(2)
生活随笔
收集整理的這篇文章主要介紹了
python3的3D实战-基于panda3d(2)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
Panda3D包含一個稱為場景圖Scene Graph的數(shù)據(jù)結(jié)構(gòu)。場景圖Scene Graph 是包含所有需要渲染的對象的樹。樹的根是一個名為render的對象。在首次插入到場景圖Scene Graph之前,不會渲染任何內(nèi)容。
為了將草景模型安裝到場景圖中,我們使用reparentTo()方法。這將設置模型的父級,從而使其在場景圖中占有一席之地。這樣做會使模型在場景中可見。
最后,調(diào)整模型的位置和比例。在這個特殊的例子中,環(huán)境模型有點太大,對于我們的目的來說有些偏移。setScale()和setPos()過程重新縮放模型并使其居中。
Panda3D使用“地理”坐標系,其中位置(-8,42,0)表示地圖坐標(8,42)和高度0。如果您習慣于OpenGL/Direct3D坐標,則以經(jīng)典姿勢舉起右手,拇指為X,手指為Y,手掌為Z,朝向您;然后向后傾斜,直到您的手水平,手指指向別處,手掌朝上。在Panda3D中向前移動是Y坐標的正變化。
巖石和樹似乎在盤旋。相機略低于地面,背面剔除使我們看不見地面。如果我們重新定位相機,地形會看起來更好。
#!/usr/bin/env python3 # -*- coding: utf-8 -*- from direct.showbase.ShowBase import ShowBaseclass MyApp(ShowBase):def __init__(self):ShowBase.__init__(self)# Load the environment model.self.scene = self.loader.loadModel("models/environment")# Reparent the model to render.self.scene.reparentTo(self.render)# Apply scale and position transforms on the model.self.scene.setScale(0.25, 0.25, 0.25)self.scene.setPos(-8, 42, 0)app = MyApp() app.run()總結(jié)
以上是生活随笔為你收集整理的python3的3D实战-基于panda3d(2)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: IoT -- (六) MQTT和CoAP
- 下一篇: python3的3D实战 -基于pand