Game engine edytor oparty na directx API


#1

Hej
1.) Czy istnieje taki game engine tool ktory pozwala na:
tworzenie terenu gry, drzew, trawy, różnych efektów jak wiatr, woda i gdy to stworzysz to masz podgląd na kod ktory jest oparty na directx API np. directx9 no i ci też vertex i pixel shader sie wygenerują, textury. Czyli z poziomu programisty C++ masz coś takiego, że np. nie umiesz wygenerować efektu drzewa a masz już swój projekt gdzieśtam z 50 tys. linii kodu oparty na directx9 bo np. 10 lat temu tworzyłeś i chciałbyś wrocić do jego ukończenia więc nie będziesz od nowa zaczynał i uczył się unreala czy unity, tylko już tamto chcesz dokończyć co masz.:slight_smile: No to wchodzisz w ten program dajesz na pustą scenę tylko drzewo i patrzysz jaki kod z DirectxaX API został wygenerowany wraz z dodaniem na scene tego drzewa. Więc następnie po obczajeniu kodu możesz zrobić copy paste kodu, tekstur, shaderów do swojego projektu no i masz w swoim projekcie drzewo.
Być może jakaś wcześniejsza wersja Unreal Engine tworzyła kod oparty na directx? Szukałem w necie ale nie znalazłem. Większość enginow to po prostu ma owrapowane wstawki directX API do własnego interfejsu a następnie ten interfejs wystawiony do dynamicznej biblioteki, tak że nawet nie masz podglądu na szczegóły interfejsu tego silniki jakie wywołania directx API on kryje pod sobą.

2.) Jak aż tak dobrze nigdy nie było i taki tool nigdy nie istniał aby dodawać na scenę swoje rzeczy i generował się kod C++ oparty na directx9 czy tam 10,11 API to czy chociaż istnieje taki tool w którym tworzysz teren, wszystkie elementy statyczne w twojej grze gdzie masz już jakieś gotowce jak to drzewo aby je tylko dodać na scene (bez efektu wiatru i innych animacji) i następnie możesz to exportować do formatu np. mesha .x albo chociaż do formatu który Blender akceptuje (a stamtąd to wiem, ze można już to wyeksportować do .x bo już to robiłem). Czytałem że jest dużo programów jak terragen, terrasculptor, world creator, ale jest wiele komentarzy że tylko jako height mapę można eksportowac bez tekstur i dodatkowych plików które zapewniałyby blendowanie tekstur.


#2

TL;DR:
nie

Dłuższa wypowiedź:
Istnieją programy które zapisują pliki w jakimś formacie.
Potem silniki wczytują te pliki w jakimś formacie. I przetwarzają po swojemu.
Praktycznie żaden soft nie zapisuje wyników jako kodu c++, to miałoby sens tylko do naprawdę mikro projektów i byłoby zupełnie nie elastyczne.

Nie wiem jak konkretnie z terenem ale do modeli są formaty jak .fbx czy .obj
I też zwykle silniki wspierają tylko mały podzbiór konkretnie przygotowanych plików.
Tekstury czy shadery też zwykle wczytuje się jako bitmapy do silnika i dorabia szczegóły na tym co silnik wspiera. Silnik zwykle stara się nie psuć przy imporcie i zachowywać podobnie jak program do modelowania ale różnie mu to wychodzi.

Jakieś konkretne programy mogą być lepiej zintegrowane z danym silnikiem albo w ogóle być wbudowane w edytor silnika i niedostępne dla innych narzędzi.

Jak potrzebujesz obsługi konkretnego formatu czy konwersji do innego formatu musisz sobie samemu dopisać, albo poszukać na necie może ktoś już napisał i się podzielił.
Np program który wczyta taką height mapę i wygeneruje model.
Ale może twój projekt nie chce modelu tylko zrobi jakieś dynamiczne generowanie w oparciu o height mapę, albo inną magię, każdy projekt ma swoje pomysły.

Shadery np w UE4 wyklikuje się na bloczkach w edytorze UE4. A potem silnik unreala generuje z tych bloczków odpowiedni kod shadera w zależności od ustawień builda, docelowych platform itd.