a lot of stuff

This commit is contained in:
Vysyr committed 2026-10-27 19:57:03 +01:00
1 parent 86f54deb01
commit a3a80dfa16
35 files changed
+407

No files matched your search

+48
View File
@@ -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.