a lot of stuff
This commit is contained in:
1 parent
86f54deb01
commit
a3a80dfa16
35 files changed
+407
No files matched your search
Executable
+48
@@ -0,0 +1,48 @@
|
||||
# Demo Render Bridge: minimalny prawdziwy plugin UE C++ -> Python
|
||||
|
||||
Plugin pokazuje rzeczywisty przeplyw:
|
||||
|
||||
```text
|
||||
TextureRenderTarget2D
|
||||
-> Python wywoluje UFUNCTION
|
||||
-> C++: FImageUtils::GetRenderTargetImage
|
||||
-> C++: FImageUtils::CompressImage(".png")
|
||||
-> TArray<uint8> wraca do Pythona
|
||||
-> Python zapisuje bytes na dysku
|
||||
```
|
||||
|
||||
## Struktura
|
||||
|
||||
```text
|
||||
DemoPlugin.uplugin
|
||||
Source/DemoPlugin/DemoPlugin.Build.cs
|
||||
Source/DemoPlugin/Public/DemoRenderBridge.h
|
||||
Source/DemoPlugin/Private/DemoRenderBridge.cpp
|
||||
Source/DemoPlugin/Private/DemoPlugin.cpp
|
||||
use_plugin.py
|
||||
```
|
||||
|
||||
## Jak uruchomic
|
||||
|
||||
1. Skopiuj caly katalog jako `<Projekt>/Plugins/DemoPlugin`.
|
||||
2. Upewnij sie, ze projekt ma modul C++ i wlaczony `Python Editor Script Plugin`.
|
||||
3. Otworz projekt i zaakceptuj kompilacje pluginu albo zbuduj projekt w IDE.
|
||||
4. Utworz asset `TextureRenderTarget2D` pod `/Game/Demo/RT_Demo` lub zmien
|
||||
sciezke `RENDER_TARGET_ASSET` w `use_plugin.py`.
|
||||
5. W Unreal Editor wybierz `Tools -> Execute Python Script` i uruchom
|
||||
`use_plugin.py`.
|
||||
6. Wynik pojawi sie jako `Saved/demo_from_cpp.png`.
|
||||
|
||||
## Co jest mostem do Pythona
|
||||
|
||||
- `UCLASS()` rejestruje klase w refleksji.
|
||||
- `UFUNCTION(BlueprintCallable)` eksportuje funkcje.
|
||||
- `UDemoRenderBridge` staje sie `unreal.DemoRenderBridge`.
|
||||
- `RenderTargetToPng` staje sie `render_target_to_png`.
|
||||
- `UTextureRenderTarget2D*` przyjmuje obiekt zaladowany w Pythonie.
|
||||
- `TArray<uint8>` wraca jako kolekcja konwertowalna przez `bytes(...)`.
|
||||
|
||||
To jest odchudzona wersja prawdziwego render bridge'a: pomija wybor formatu,
|
||||
luminancje, specjalne kodowanie RGB, transport sieciowy i rozbudowana obsluge
|
||||
bledow. Zachowuje jednak faktyczne wywolania API C++ Unreala i prawdziwy
|
||||
kontrakt widoczny z Unreal Python.
|
||||
Reference in new issue
Block a user