- Dokumentacja
- Rysowanie (dx)
Kategoria
Rysowanie (dx)
Wszystkie funkcje i zdarzenia Lua z kategorii Rysowanie (dx), po stronie serwera i klienta.
Funkcje klienta 91
attachPrzyczepia kamerę do elementu (pojazd, gracz, postać, obiekt, obiekt modelu). Pozycja i cel są w metrach w układzie elementu (x w prawo, y do przodu, z w górę); cel domyślnie 10 m przed kamerą. Lusterko wsteczne to kamera z tyłu auta patrząca do tyłu iCamera Render setCameraRenderMirrored.createTworzy drugą kamerę, która renderuje świat do tekstury: lusterko w aucie, monitoring, ekran z widokiem z drona. Teksturę rysujesz przezCamera Render dxDrawImage,dxDrawMaterialLine3Dalbo przekazujesz shaderowi. Rozmiar 16-2048 pikseli, 0-60 zdjęć na sekundę (0 = tylko na żądanie przezrenderCameraMatrix/updateCameraRender). Każde zdjęcie to dodatkowy render sceny, więc kosztuje wydajność.createNoweKładzie obrazek na ziemi - ślad, plamę albo oznaczenie miejsca. Obrazek układa się na pochyłościach i krawężnikach, a nie wisi płasko nad nimi. Rysowany jest do 150 m od kamery, a przy ustawionym czasie życia ostatnia sekunda płynnie wygasa. Decal zostaje do destroyGroundDecal albo zatrzymania zasobu.Ground Decal createTworzy nagranie z danych AVI (MJPEG): zRecording From Data getRecordingData, z pliku albo od innego gracza.createTworzy odtwarzacz nagrania, który jest teksturą: rysujesz go jak każdą teksturę, także w świecie przezRecording Player dxDrawMaterialLine3D. Nagranie można potem usunąć, odtwarzacz ma swoje klatki.destroyNoweUsuwa decal z createGroundDecal.Ground Decal detachOdpina kamerę od elementu; zostaje w miejscu ostatniego zdjęcia.Camera Render dxZamienia piksele na inny format:Convert Pixels plain,pngalbojpeg(z jakością 1-100).dxTworzy czcionkę z pliku TTF/OTF zasobu albo z kroju systemowego (podajesz nazwę). Rozmiar jest w punktach. Czcionkę przekazujesz doCreate Font dxDrawTextiguiSetFont.dxTworzy powierzchnię do rysowania poza ekranem. PoCreate Render Target dxSetRenderTarget(rt)wszystkiedxDraw*rysują na niej, a potem rysujesz ją jak teksturę. Bez kanału alfa każdy piksel jest kryjący.dxTworzy źródło obrazu ekranu o podanym rozmiarze.Create Screen Source dxUpdateScreenSourcewpisuje do niego obraz gry (przeskalowany), który potem rysujesz albo przetwarzasz shaderem.dxTworzy teksturę: z pliku obrazu zasobu, z pikseli (Create Texture plain,png,jpeg,dds) albo pustą o podanym rozmiarze. Tekstura jest materiałem dladxDrawImage,dxDrawMaterial*3Di shaderów.dxRysuje prostokąt z wypełnieniem i ramką o podanej grubości jednym wywołaniem.Draw Bordered Rectangle dxRysuje koło, elipsę albo wycinek koła o środku (x, y) i promieniu w pikselach. Krótka forma przyjmuje sam kolor jako czwarty argument.Draw Circle dxRysuje prostokąt z pionowym przejściem od koloru górnego do dolnego.Draw Gradient Rectangle dxRysuje obraz (plik PNG/JPG zasobu, teksturę, render target, przeglądarkę albo kamerę) w prostokącie ekranu, z opcjonalnym obrotem i zabarwieniem.Draw Image dxRysuje wycinek obrazu (u, v, szerokość i wysokość wycinka w pikselach obrazu) w prostokącie ekranu. Przydaje się do arkuszy ikon i pasków postępu.Draw Image Section dxRysuje odcinek między dwoma punktami ekranu.Draw Line dxRysuje odcinek między dwoma punktami świata: rzutuje je na ekran i łączy linią. Rysuje tylko, gdy oba końce są na ekranie, i nie jest zasłaniany przez budynki.Draw Line3 D dxRysuje materiał (obraz, teksturę, przeglądarkę, kamerę albo shader) jako pas w świecie 3D: od punktu początku (góra obrazu) do końca, o podanej szerokości. Pas jest zwrócony do kamery albo do punktuDraw Material Line3 D faceX, faceY, faceZ. Rysunek jest częścią świata: zasłaniają go budynki i świeci (ekran widać w nocy). Tak zrobisz billboard, ekran kina albo napis nad budynkiem.dxRysuje kształt z trójkątów w świecie 3D pokryty materiałem. Wierzchołki toDraw Material Primitive3 D {x, y, z, kolor, u, v}, gdzie u i v (0-1) mówią, który punkt obrazu trafia w wierzchołek. Kolor całego kształtu pochodzi z pierwszego wierzchołka.dxJakDraw Material Section Line3 D dxDrawMaterialLine3D, ale rysuje tylko wycinek materiału (u, v, szerokość i wysokość wycinka w pikselach).dxRysuje model obiektu gry w danym miejscu na jedną klatkę: bez kolizji, zasłaniany przez świat. Nie działa dla postaci i pojazdów. Pierwsza klatka nowego modelu czeka, aż gra go wczyta. Najwyżej 64 obiekty naraz.Draw Model3 D dxRysuje kształt 2D z listy wierzchołkówDraw Primitive {x, y [, kolor]}: punkty, linie albo trójkąty. Kolor jest płynnie mieszany między wierzchołkami.dxRysuje kształt z trójkątów w świecie 3D z wierzchołkówDraw Primitive3 D {x, y, z, kolor}. Cały kształt ma kolor pierwszego wierzchołka.dxRysuje wypełniony prostokąt na ekranie w jednej klatce. Wywołuj wDraw Rectangle onClientRender, żeby był widoczny cały czas.dxRysuje prostokąt z zaokrąglonymi rogami. Promień jest w pikselach i nie przekracza połowy krótszego boku.Draw Rounded Rectangle dxRysuje tekst na ekranie w jednej klatce. Wywołuj wDraw Text onClientRender, żeby był widoczny cały czas.dxRysuje siatkę kuli w świecie (do debugowania, np. zasięgu strefy). Rysowana na ekranie, więc widać ją przez ściany.Draw Wired Sphere dxZwraca tryb ustawiony przezGet Blend Mode dxSetBlendMode(domyślnie"blend").dxZwraca czcionkę ustawioną przezGet Default Font dxSetDefaultFontw tym zasobie albo"default".dxZwraca ustawienieGet Draw Priority dxSetDrawPrioritybieżącego zasobu:"overHud"(domyślnie) albo"underHud".dxZwraca wysokość jednego wiersza tekstu w pikselach dla skali i czcionki.Get Font Height dxZwraca opis czcionki: krój (Get Font Info family), rozmiar w pikselach (px) i punktach (size), ustawienia stylu i źródło.dxZwraca nazwy wbudowanych czcionek:Get Font List default,default-bold,clear,arial,sans,pricedown,bankgothic,diploma,beckett,unifont,inter,inter-medium,inter-semibold,inter-bold.dxZwraca szerokość i wysokość materiału: tekstury, render targetu, przeglądarki albo shadera.Get Material Size dxZwraca kolor piksela (x, y) z pikseli w formacieGet Pixel Color plain.dxMówi, w jakim formacie są piksele:Get Pixels Format "plain","png","jpeg","dds"albofalse.dxZwraca szerokość i wysokość obrazu zapisanego w pikselach (dowolny format).Get Pixels Size dxZwraca stan rysowania: tryb testowy, rozdzielczość, liczbę tekstur, render targetów i źródeł ekranu skryptów oraz pamięć tekstur. Przydaje się do szukania wycieków tekstur.Get Status dxZwraca szerokość i wysokość bloku tekstu, także przy zawijaniu do podanej szerokości.Get Text Size dxOdczytuje piksele tekstury, render targetu albo źródła ekranu w formacieGet Texture Pixels plain,pngalbojpeg, w całości albo z wycinka (x, y, szerokość, wysokość). Na przykład do zrzutu ekranu.dxZwraca szerokość tekstu w pikselach dla danej skali i czcionki (jak wGet Text Width dxDrawText). Przydaje się do wyśrodkowania i ramek dopasowanych do tekstu.dxZwraca rozmiar obrazu z pliku zasobu w pikselach, bez tworzenia tekstury.Image Size dxZwraca ustawienie zIs Aspect Ratio Adjustment Enabled dxSetAspectRatioAdjustmentEnabled.dxWłącza korektę proporcji rysowania na szerokich ekranach. Wartość jest zapamiętywana dla zgodności ze starszymi skryptami (Set Aspect Ratio Adjustment Enabled dxIsAspectRatioAdjustmentEnabled), ale nie zmienia rysowania; licz pozycje odguiGetScreenSize.dxUstawia tryb mieszania kolorów przy rysowaniu (Set Blend Mode blend,add,modulate_add,overwrite). Wartość jest zapamiętywana dla zgodności ze starszymi skryptami (dxGetBlendMode), ale rysowanie zawsze używa zwykłego mieszania.dxUstawia czcionkę, którejSet Default Font dxDrawTextużywa bez podanej czcionki, tylko w bieżącym zasobie.nilprzywraca domyślną.dxUstawia, czy zwykłe rysunki 2D zasobu (Set Draw Priority dxDrawRectangle,dxDrawText,dxDrawImage,dxDrawLinei inne bezpostGUI) są rysowane nad HUD-em i radarem gry ("overHud", domyślnie) czy pod nimi ("underHud"). Ustawienie dotyczy następnych wywołańdxDraw*tego zasobu i trwa do zmiany, a każdy zasób ma własne. W jednymonClientRendermożna przełączać: część rysunków pod HUD-em, część nad nim. Rysunki zpostGUI = truezawsze są nad wszystkim.dxZmienia styl czcionki zSet Font Style dxCreateFont:bold,italic,underline,strike,weight,spacing,widthScale,shadow,outline,outlineColor,gradient,lineSpacing,size. Możesz podać jeden klucz albo tabelę.dxUstawia kolor piksela (x, y) w pikselachSet Pixel Color plaini zmienia przekazany napis. Obrazy mniejsze niż 4x4 są odrzucane.dxUstawia, gdzie rysują funkcjeSet Render Target dxDraw*: na render target (opcjonalnie najpierw go czyści) albo, bez argumentu, na ekranie. Działa tylko wonClientRenderionClientPreRender; po zdarzeniu rysowanie wraca na ekran.dxWłącza tryb testowy, żeby sprawdzić, czy skrypt radzi sobie z błędami:Set Test Mode "no_mem"(tworzenie tekstur zawodzi),"low_mem"(bez skutku),"no_shader"(dxCreateShaderzawodzi),"none"(wyłączony).dxUstawia, co tekstura pokazuje poza swoim obrazem przy wycinkach (Set Texture Edge dxDrawImageSection): powtórzenie (wrap), odbicie (mirror), przeciągnięcie krawędzi (clamp) albo kolor ramki (border).dxWpisuje piksele (Set Texture Pixels plain,png,jpeg) do tekstury albo render targetu, w całości albo w wycinek.dxOdświeża źródło obrazu ekranu obrazem gry (bez nakładki skryptów). Obraz dochodzi 1-2 klatki później.Update Screen Source getZwraca element, do którego kamera jest przyczepiona.Camera Render Attached To getZwraca obecny mnożnik jasności kamery i czy dobiera go automat.Camera Render Exposure getZwraca ustawioną liczbę zdjęć na sekundę (zmierzoną podajeCamera Render Frame Rate getCameraRenderInfo).getZwraca stan kamery:Camera Render Info state, liczbę klatek w teksturze (frames), zmierzone zdjęcia na sekundę (fps), czy obraz dociera (ready), czy element przyczepienia zniknął (attachLost) i błąd (error).getZwraca położenie kamery: x, y, z, cel, przechylenie i pole widzenia. Dla kamery przyczepionej do elementu podaje miejsce ostatniego zdjęcia.Camera Render Matrix getZwraca zasięg widzenia kamery w metrach (0 = jak w grze).Camera Render View Distance getZwraca całe nagranie jako plik AVI (MJPEG) w napisie, np. doRecording Data fileWrite, wysłania na serwer albocreateRecordingFromData.getZwraca piksele jednej klatki nagrania (numer od 1) w formacieRecording Frame jpeg(domyślnie),pngalboplain, np. dodxCreateTexturealbo zapisu zdjęcia.getZwraca informacje o nagraniu: czy trwa (Recording Info recording), liczbę klatek, klatki na sekundę, długość w ms (duration), rozmiar obrazu, rozmiar danych w bajtach (size) i powód zatrzymania (stopReason).getZwraca położenie odtwarzacza i długość nagrania w milisekundach.Recording Player Position getZwraca stan sprawdzania zasłaniania: czy jest włączone (World Point Occlusion Info enabled), czy gra odpowiada (available), liczbę sprawdzeń (checks), kolejkę (queue) i zapamiętane punkty (cached).isSprawdza, czy nagranie wciąż trwa (staje samo po maksymalnym czasie, limicie pamięci albo usunięciu kamery).Camera Recording isSprawdza, czy wartość to działająca kamera zCamera Render createCameraRender.isSprawdza, czy obraz kamery jest odbity.Camera Render Mirrored isSprawdza, czy odtwarzacz gra (nie jest na pauzie i nie doszedł do końca bez pętli).Recording Player Playing isSprawdza, czyWorld Point Occlusion Enabled isWorldPointVisiblesprawdza zasłanianie.isSprawdza, czy punkt świata jest na ekranie i nie zasłania go budynek ani teren. Zasłanianie jest sprawdzane w tle, więc wynik dla nowego punktu przychodzi po chwili. Do napisów i znaczników 3D, które nie mają być widoczne przez ściany.World Point Visible loadWczytuje nagranie z pliku AVI (MJPEG) zasobu.Recording renderRobi jedno zdjęcie kamerą z podanego miejsca (jakCamera Matrix setCameraRenderMatrixiupdateCameraRendernaraz). Obraz pojawia się w teksturze 1-2 klatki później; działa też przy 0 zdjęciach na sekundę.saveZapisuje nagranie do pliku AVI w zasobie (nadpisuje istniejący, jakRecording fileCreate).setUkrywa element tylko w obrazie tej kamery, np. własne auto w lusterku albo gracza trzymającego telefon. Cień elementu zostaje. Do 64 elementów na kamerę.Camera Render Element Hidden setUstawia jasność obrazu kamery:Camera Render Exposure "auto"(domyślnie, dobiera mnożnik 0.5-4 z jasności kadru jak aparat) albo stały mnożnik 0.05-16. Obraz kamery ma podniesione cienie, żeby w nocy wyglądał podobnie do gry.setUstawia, ile zdjęć na sekundę robi kamera (0-60; 0 = tylko na żądanie).Camera Render Frame Rate setUstawia kamerę w miejscu i kierunku jakCamera Render Matrix setCameraMatrix: pozycja, punkt, w który patrzy, przechylenie i pole widzenia (5-170, domyślnie 70). Odpina kamerę od elementu.setOdbija obraz kamery w poziomie (lusterko). Dotyczy też nagrań z tej kamery.Camera Render Mirrored setUstawia zasięg widzenia kamery w metrach (0 = jak w grze). Krótszy zasięg to tańszy render, np. dla lusterka.Camera Render View Distance setNoweZmienia kolor decala z createGroundDecal.Ground Decal Color setWłącza albo wyłącza odtwarzanie w pętli.Recording Player Looped setPauzuje albo wznawia odtwarzacz. Wznowienie po końcu nagrania zaczyna od początku.Recording Player Paused setPrzewija odtwarzacz do podanej milisekundy nagrania.Recording Player Position setUstawia prędkość odtwarzania 0-16 (1 = normalna, 0.5 = zwolnione tempo).Recording Player Speed setWłącza albo wyłącza sprawdzanie zasłaniania wWorld Point Occlusion isWorldPointVisible(false= punkty widoczne przez ściany, do debugowania).startNagrywa obraz kamery zCamera Recording createCameraRenderdo pamięci (bez dźwięku). Zwraca element nagrania. 1-60 klatek na sekundę, do 600 sekund, jakość JPEG 1-100. Kamera powinna robić co najmniej tyle zdjęć na sekundę co nagranie, inaczej klatki się powtarzają.stopKończy nagrywanie. Nagranie zostaje do odtworzenia i zapisu. ZwracaCamera Recording false, gdy już nie nagrywało.updateZleca jedno zdjęcie kamery w najbliższej klatce (obraz w teksturze 1-2 klatki później).Camera Render
Zdarzenia klienta 3
onPrzychodzi co klatkę przedClient Pre Render onClientRender, bez rysowania. Dostaje czas od poprzedniej klatki, więc nadaje się do płynnego ruchu (kamery, animacje).onWywoływane w każdej klatce gry. Tu rysujesz wszystko, co ma być stale na ekranie: HUD, liczniki, napisy.Client Render onZmieniła się rozdzielczość albo rozmiar okna gry. Przelicz wtedy pozycje interfejsu.Client Screen Size Change