본문 바로가기
Programming/Python

Python 3D - Panda3D SDK(v1.10.15) 설치 및 테스트

by The Programmer 2025. 12. 20.

1. Introduction

 
파이썬과 C++를 지원하는 Panda3D 라이브러리를 소개합니다. 아직은 파이썬과 함께 쓰기에 좋은 것인지 나쁜 것인지는 잘 모르겠지만, 매우 강력한 것은 사실입니다. 어마어마한 기능들을 선보입니다.

3D Graphic과 게임을 만들 때 꼭 필요한 여러 가지 유틸리티 기능들도 지원합니다.

비교 대상이 없어서 아직 뭐라고 말하기가 좀 그렇군요. 유튜브에 올라온 소개 영상들을 좀 살펴보니 3D 그래픽 프로그래밍과 관련된 다양한 실험에 크게 도움이 될 듯합니다.

파이썬에서 다용도로 많이 사용하는 PyGame과 함께 유용한 라이브러리가 될 것으로 생각합니다.

파이썬용으로 3D 그래픽을 지원하는 라이브러리가 그렇게 많지는 않으나 Panda3D는 Python과 C++ 언어를 공식 지원합니다.


설치는 아래 링크를 참고하세요. 여기서는 Windows v11, 64 비트 OS를 기준으로 설치 및 테스트를 진행합니다. 

이 글에서는 코드 일부를 포함하지만 그 세부 내용 해설은 다루지 않습니다. Python에서 3D를 구현하는 것에는 이런 방법도 있다는 것을 소개합니다.

1) Panda3D SDK를 설치하고
2) 이 SDK의 bin 폴더를 Windows 11 System Path에 추가한 다음,
3) 첨부 파일 중, Panda3D_Sample_Set_Part_1_.zip 파일 내용들을 실행해보세요.

대략 이 라이브러리의 성능과 가능성을 어느 정도 짐작해 볼 수 있을 것입니다. 영문 온라인 매뉴얼 내용을 살펴보면 상당한 수준의 활용이 가능해 보입니다. 국내 출판된 한글판 매뉴얼이나 교재는 아직 보이지 않습니다. 온라인 영어 매뉴얼은 나름 상당히 방대하고 자세하게 되어 있습니다. 영어 공부 열심히 하세요. ^.^;

 
Panda3D 라이브러리 프로젝트는 오픈소스이며, 미국 명문, 카네기 멜론 대학이 주도하고 있습니다.
 
공식 라이선스는 'the Modified BSD License'입니다. ^.^;
 
 
■ 매뉴얼 ::
https://docs.panda3d.org/1.10/python/introduction/tutorial/index
 
■ 무료 비디오 강의 ::
https://docs.panda3d.org/1.10/python/more-resources/video-lectures
 
■ 다운로드 A :: 직접 다운로드. 버전에 따라 주소가 달라질 수도 있음.
https://www.panda3d.org/download/panda3d-1.10.15/Panda3D-SDK-1.10.15-x64.exe

Panda3D-SDK-1.10.15-x64.exe ('=. 155 MB)

이 파일을 윈도우 탐색기에서 더블 클릭으로 실행해서 설치합니다.
 
■ 다운로드 B :: 
# 또는 다음 주소에서도 다운로드 가능.
https://www.panda3d.org/download/sdk-1-10-15/
 
 
■ 설치법 안내 :: 
 
설치는 의외로 간단합니다.
 
1) Git 허브 사이트에서 Panda 3D 프로젝트 주소를 찾고,

( 또는, 위 링크에서 다운로드 받거나,
또는, 직접 공식 사이트를 찾아가서 다운로드 받으시고  - 모든 다운로드 링크는 항상 달라질 수도 있음, )

2) 거기서 다운받은 SDK를 설치하면 거의 그것으로 끝입니다. '거의'.

3) 설치된 SDK 설치 폴더내에 있는 bin 폴더를 Windows 11 System Path에 등록합니다. 끝.
 
SDK를 설치한 후, 만약, 디폴트로 정해진 설치 폴더, C:\Panda3D-1.10.15-x64\에 설치했다면,
 
C:\Panda3D-1.10.15-x64\bin
 
위 폴더를 Windows OS의 시스템 Path에 추가하면 진짜 끝입니다. 아래 Notes 부분에 이 절차를 남겨둡니다. 
 
4) Thonny에서 아래 다음 코드들로 기본적인 작동 여부를 테스트해보세요.
 
^.^;
 
 

2. Code

 

2-1. Panda3D 기본 코드

 

from direct.showbase.ShowBase import ShowBase

class MyApp(ShowBase):
    def __init__(self):
        ShowBase.__init__(self)

app = MyApp()
app.run()



2-2. 'Hello, Panda3D!' 샘플 코드

 

from direct.showbase.ShowBase import ShowBase

class 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()


3. Result

 

[ Pands 3D 기본 창 ]

[ Panda 3D 기본 샘플창 ]

[ Panda 3D 기본 샘플창을 최대화 ]

[ Panda 3D 기본 샘플창, 확대, 줌인, 회전 적용 결과 ]

 
■ Panda3D SDK에 포함되어 있는 다른 공식 예제들 실행 결과
 

[ Panda3D 공식 샘플 예제. Asteroids ]

 

[ Panda3D 공식 샘플 예제.Ball in Maze ]

 

[ Panda3D 공식 샘플 예제.Chess Board ]

 

[ Panda3D 공식 샘플 예제.Procedural Cube ]

 

[ Panda3D 공식 샘플 예제.Roaming Ralph ]

 

4. Notes

 
3D 조작 방법은 대략, Blender 3D와 매우 비슷합니다. Panda 3D 매뉴얼을 이제 읽어보는 중이어서 아직 모든 조작 키들을 알지는 못합니다.
 
2D와 3D의 가장 큰 차이점은, 어떤 도형이 있다고 가정하면, 2D는 뒷모습을 볼 수 없는데, 3D는 '뒷통수'를 돌려서 볼 수 있다는 점입니다. 3D는 3차원 공간에 존재하는 입체 도형이라는 것이죠. 2D는 x, y 좌표 체계만 존재하는데, 3D는 x, y, z 좌표 체계가 존재합니다. FMSLogo나 Blender 3D에서 2D와 3D를 모두 경험해 봤다면 아마도 대략은 이해할 수 있을 것입니다.
 
다음은 Panda3D로 제작한 프로젝트의 실행 결과창에서 사용할 수 있는 3D 조작법 요약입니다. 직관적으로 알 수 있는 일부 내용만 포함되었습니다. 두 세 권 이상의 교재가 출간되어 있기는 하네요.
 
Panda3D 결과 출력창에서의 기본 조작법 몇가지. Blender 3D 단축키들과 비슷함.
 
1) 크기Scale(줌인, 줌아웃) : L-Ctrl Key + Mouse.L-Btn, Click and Drag.
2) 회전Rotation : L-Ctrl Key + Mouse.Wheel-Btn, Click and Drag.
 
 
■ SDK bin 폴더를 Path에 추가하는 절차
 
SDK를 설치한 후, 만약, 디폴트로 정해진 설치 폴더, C:\Panda3D-1.10.15-x64\에 설치했다면, C:\Panda3D-1.10.15-x64\bin
이 폴더를 Windows OS의 시스템 Path에 추가하면 됩니다.
 
이 절차는 다음과 같습니다. 보통은 클릭으로 진행하면 됩니다.
 
1) Windows 시작 버튼 > 마우스 오른쪽 버튼으로 클릭 > 시스템 > (장치사양 패널 부분에 있는..) 고급 시스템 설정 >
2) 고급 탭 > 환경 변수 > 사용자 변수 부분과 시스템 변수 부분이 있는데,
3) 아래쪽에 있는 시스템 변수 패널 부분에서 수정 작업을 합니다.
4) 시스템 변수 > Path 변수 > 편집 버튼 클릭 > 환경 변수 편집 창이 열리면, 새로 만들기 클릭.
5) 맨 아래쪽에 다음 줄을 추가하면 됩니다.
 
C:\Panda3D-1.10.15-x64\bin
 
6) 그 다음에는 '확인', 시스템 관련 모든 창을 '확인'으로 닫으시면 됩니다.
 
 
■ 매뉴얼 :: 
https://docs.panda3d.org/1.10/python/introduction/tutorial/index
 
 
■ Panda3D SDK 소스 코드 : 
https://github.com/panda3d/panda3d/tree/v1.10.15
https://github.com/panda3d/panda3d/archive/refs/tags/v1.10.15.zip
 
 
■ 참고 :: SDK 설치는 파이썬의 pip 모듈을 이용한 설치법으로 설치할 수도 있습니다.

pip install panda3d==1.10.15

 
이 방식이 더 편리할 수도. ㅡ.ㅡ; 하지만, 제 경우, SDK 파일을 직접 다운로드 받아서 탐색기에서 더블 클릭해서 설치했습니다.
 
 
■ 응용 연습 과제
1) 기본 3D 입체들을 생성하는 명령어들을 찾아보세요.
2) import 방식과 라이브러리 그 구조를 좀 더 상세하게 살펴보세요.
 
 
■ Panda3D GUI.Button 예제 (출처 : 공식 사이트) :

import direct.directbase.DirectStart
from direct.gui.OnscreenText import OnscreenText
from direct.gui.DirectGui import *

from panda3d.core import TextNode

# Add some text
bk_text = "This is my Demo"
textObject = OnscreenText(text=bk_text, pos=(0.95,-0.95), scale=0.07,
                          fg=(1, 0.5, 0.5, 1), align=TextNode.ACenter,
                          mayChange=1)

# Callback function to set  text
def setText():
        bk_text = "Button Clicked"
        textObject.setText(bk_text)

# Add button
b = DirectButton(text=("OK", "click!", "rolling over", "disabled"),
                 scale=.05, command=setText)

# Run the tutorial
base.run()

 
 
 
■ Panda3D GUI.Entry 예제 (출처 : 공식 사이트) :

import direct.directbase.DirectStart
from direct.gui.OnscreenText import OnscreenText
from direct.gui.DirectGui import *
from panda3d.core import *

#add some text
bk_text = "This is my Demo"
textObject = OnscreenText(text=bk_text, pos=(0.95, -0.95), scale=0.07,
                          fg=(1, 0.5, 0.5, 1), align=TextNode.ACenter,
                          mayChange=1)

#callback function to set  text
def setText(textEntered):
    textObject.setText(textEntered)

#clear the text
def clearText():
    entry.enterText('')

#add text entry
entry = DirectEntry(text = "", scale=.05, command=setText,
initialText="Type Something", numLines = 2, focus=1, focusInCommand=clearText)

#run the tutorial
base.run()

 
 
■ GUI - Korean :
위 예제 코드와 같은 방식으로 버튼과 엔트리를 만들 수 있습니다. 엔트리의 경우, 아쉽게도 한글은 지원이 안 됩니다.
영문자, 숫자, 기호들은 O.K.. 
 
 
■ Sound / Audio :
Panda3D SDK에는 GUI 뿐만이 아니라 Sound 모듈도 포함되어 있습니다. 게임 만들 때 제법 쓸모가 있을 것으로 보입니다.
 
 
■ 나머지 부분들은 다음 매뉴얼을 참고하세요.
https://docs.panda3d.org/1.10/python/programming/index
 
 

5. Files

 
대략 짧은 코드라 Thonny에서 직접 입력하시길 권장합니다만.
 
(출처 : 공식 사이트)
 

Hello_Panda_3D_Ex_001_.py
0.00MB

 

Hello_Panda_3D_Ex_002_.py
0.00MB

 

Hello_Panda_3D_Ex_003_Button_001_.py
0.00MB

 

Hello_Panda_3D_Ex_004_Entry_001_.py
0.00MB

 
 
SDK(v1.10.15) 안에 샘플 프로젝트들이 제법 많이 들어 있습니다. 이들 중에서 좋아보이는 것들 몇 개만 소개합니다.
 
압축파일 내부에는
 
- Asteroids_.zip,
- Ball_in_Maze_Game_.zip,
- Chess_Board_.zip,
- Procedural_Cube_.zip,
- Roaming_Ralph_.zip
 
프로젝트 등, 완전하게 작동하는 다섯 개의 프로젝트 파일들이 들어 있습니다. 서로 독립적인 다섯 개의 프로젝트 파일들입니다. 이들 중에서 Ball_in_Maze_Game_.zip 프로젝트와 Roaming_Ralph_.zip 프로젝트는 꼭 시험 실행해보세요. 권장. 다른 프로젝트 파일들도 모두 모범적인 활용 사례를 잘 보여주고 있습니다.
 

Panda_3D_Sample_Set_Part_1_.zip
2.92MB

 
 

6. Ref.

 
1) Panda3D 공식 매뉴얼 :: 
https://docs.panda3d.org/1.10/python/introduction/tutorial/index
 
2) Panda3D SDK 공식 다운로드 주소 ::
https://www.panda3d.org/download/sdk-1-10-15/
 
3) Panda3D SDK 소스 코드 : 
https://github.com/panda3d/panda3d/tree/v1.10.15
https://github.com/panda3d/panda3d/archive/refs/tags/v1.10.15.zip
 
4) Panda3D 무료 영상 강의 ::
https://docs.panda3d.org/1.10/python/more-resources/video-lectures
 
 
Happy Programming!
^.^;
 
 
 

'Programming > Python' 카테고리의 다른 글

Python Basic : Tuple  (0) 2026.01.19
SR 만들기 - 002  (0) 2025.11.15
Python Intro. - 001  (0) 2025.11.02
Hex File Viewer 연습 - 001  (0) 2025.10.28
신생 언어 Mojo 소개 - 001  (0) 2025.10.06