Tutorial Render with Blender/pl: Difference between revisions
(Created page with "===Ustawienie rodzaju materiału dla obiektów===") |
(Updating to match new version of source page) |
||
(36 intermediate revisions by 2 users not shown) | |||
Line 10: | Line 10: | ||
}} |
}} |
||
<span id="Introduction"></span> |
|||
==Wprowadzenie== |
==Wprowadzenie== |
||
Line 18: | Line 19: | ||
Podobny opis tego procesu jest zaprezentowany w serii filmów, [https://www.youtube.com/watch?v=U7e6-Wfv2b0 Renderuj modele Solidworks i FreeCAD w Blenderze], autorstwa Joko Engineering. |
Podobny opis tego procesu jest zaprezentowany w serii filmów, [https://www.youtube.com/watch?v=U7e6-Wfv2b0 Renderuj modele Solidworks i FreeCAD w Blenderze], autorstwa Joko Engineering. |
||
<span id="FreeCAD"></span> |
|||
{{Note|Uwaga: szybszym sposobem na renderowanie modeli w blenderze bez opuszczania programu FreeCAD może być [[Image:render_workbench_icon.svg|24px]][[Render_project/pl|Projekt Render]]|}} |
|||
==FreeCAD== |
==FreeCAD== |
||
Line 58: | Line 58: | ||
}} |
}} |
||
<span id="Blender"></span> |
|||
==Blender== |
==Blender== |
||
<span id="Prepare_the_model"></span> |
|||
===Przygotowanie modelu=== |
===Przygotowanie modelu=== |
||
Line 126: | Line 128: | ||
{{Caption|align=center|Zespół stworzony w programie FreeCAD zaimportowany do Blendera; model został obrócony, a jednostki sceny dopasowane do zaimportowanych obiektów.}} |
{{Caption|align=center|Zespół stworzony w programie FreeCAD zaimportowany do Blendera; model został obrócony, a jednostki sceny dopasowane do zaimportowanych obiektów.}} |
||
<span id="Prepare_the_camera_of_the_scene"></span> |
|||
===Przygotuj ujęcie kadru=== |
===Przygotuj ujęcie kadru=== |
||
Line 153: | Line 156: | ||
}} |
}} |
||
<span id="Prepare_the_lighting_of_the_scene"></span> |
|||
===Przygotuj oświetlenie sceny=== |
===Przygotuj oświetlenie sceny=== |
||
Line 177: | Line 181: | ||
{{Caption|align=center|Render złożenia w Blenderze z dodaną lampą słoneczną, która emituje równoległe promienie świetlne o stałym kącie}} |
{{Caption|align=center|Render złożenia w Blenderze z dodaną lampą słoneczną, która emituje równoległe promienie świetlne o stałym kącie}} |
||
<span id="More_setup:_floor,_global_lighting,_reflections,_and_soft_shadows"></span> |
|||
===Więcej ustawień: podłoga, oświetlenie globalne, odbicia i miękkie cienie=== |
===Więcej ustawień: podłoga, oświetlenie globalne, odbicia i miękkie cienie=== |
||
Line 196: | Line 201: | ||
}} |
}} |
||
<span id="Set_the_materials_of_the_objects"></span> |
|||
===Ustawienie rodzaju materiału dla obiektów=== |
===Ustawienie rodzaju materiału dla obiektów=== |
||
13. |
13. Zmień panel {{incode|Python Console}} w panel {{incode|Shader Editor}} ''({{KEY|Shift}}+{{KEY|F3}})''. |
||
13.1. |
13.1. Zaznacz płaszczyznę podłoża, przejdź do panelu {{incode|Properties}}, następnie {{incode|Material}} i kliknij przycisk {{incode|New}}. W oknie {{incode|Shader Editor}} powinien pojawić się węzeł {{incode|Principled BSDF}}. Nadaj mu beżowy kolor {{incode|Base Color}} {{incode|RGB ''(0.318, 0.267, 0.187)''}}, suwak {{incode|Metallic}} ustaw na {{incode|0.000}}, a suwak {{incode|Roughness}} na {{incode|1.000}}. |
||
[[Image:06_T03_FreeCAD_Blender_Principled_shader.png|center]] |
[[Image:06_T03_FreeCAD_Blender_Principled_shader.png|center]] |
||
{{Caption|align=center| |
{{Caption|align=center|Podstawowy shader BSDF używany w Blenderze do symulacji różnych materiałów, od błyszczących metali po szorstkie i nieprzezroczyste bryły..}} |
||
13.2. |
13.2. Zaznacz każdą z części modelu i dostosuj odpowiedni węzeł materiałowy {{incode|Principled BSDF}}. W przypadku części metalowych ustaw właściwość {{incode|Metallic}} na wartość {{incode|1.000}}. Dostosuj wartość właściwości {{incode|Roughness}}, aby mieściła się w przedziale od {{incode|0.2}} do {{incode|0.7}}. Im bardziej {{incode|0.000}} zbliża się do wartości {{incode|Roughness}}, tym bardziej będzie się odbijał ''(przypominał lustro)''. |
||
W przypadku materiałów innych niż metale, takich jak tworzywa sztuczne, drewno i tkaniny, ustaw suwak {{incode|Metallic}} na wartość {{incode|0.000}}, a wartość parametru {{incode|Roughness}} na wartość pomiędzy {{incode|0.4}} a {{incode|1.0}}. |
|||
Ogólnie rzecz biorąc, metale są naturalnie gładkie i dlatego ich wartość chropowatości jest mała, co sprawia, że są bardzo odblaskowe (błyszczące). Inne materiały są mikroskopijnie szorstkie i dlatego nie odbijają tak dużo światła, co czyni je nieprzezroczystymi. |
|||
In general, metals are naturally smooth and therefore their roughness value is small, making them very reflective (shiny). Other materials are microscopically rough, and therefore do not reflect as much light, making them opaque. |
|||
14. |
14. Testuj różne kombinacje materiałów, aż do uzyskania akceptowalnego wyglądu. Wciśnij {{KEY|Z}} a następnie {{KEY|8}} W tym trybie renderer EEVEE pokazuje w czasie rzeczywistym na rzutni 3D, jak będzie wyglądał końcowy obraz. Użyj {{KEY|Z}} by otworzyć menu pie i przełączyć się z powrotem do trybu {{incode|Solid}} ({{KEY|Z}} {{KEY|6}}), lub przejść do trybu {{incode|LookDev}} ({{KEY|Z}} {{KEY|2}}), trybu który dodaje różne rodzaje oświetlenia do sceny by przetestować wygląd materiałów. |
||
Naciśnij przycisk {{KEY|F12}}, aby wyświetlić widok z kamery i sprawdzić jakość obrazu. |
|||
Press {{KEY|F12}} to render the view through the camera and check the quality of the image. |
|||
<span id="Rendering_and_saving"></span> |
|||
=== Rendering and saving === |
|||
===Renderowanie i zapisywanie=== |
|||
15. |
15. Jeśli Twój model wygląda w miarę dobrze z rendererem EEVEE możesz już zapisać obraz poprzez {{MenuCommand|Image → Save As}} lub naciskając {{KEY|Shift}}+{{KEY|S}} w {{Incode|Image Editor}}. |
||
[[Image:07_T03_FreeCAD_Blender_EEVEE_render.png|600px|center]] |
[[Image:07_T03_FreeCAD_Blender_EEVEE_render.png|600px|center]] |
||
{{Caption|align=center| |
{{Caption|align=center|Renderowane złożenie wykonane w Blenderze EEVEE. Wszystkie materiały używają shadera Principled BSDF, użyta jest tylko jedna lampa słoneczna, z niewielką ilością światła otoczenia.}} |
||
16. Jeśli chcesz poprawić jakość obrazu, wypróbuj renderer Cycles. |
|||
16. If you want to improve the quality of the image, try the Cycles renderer. |
|||
Przejdź do panelu {{incode|Properties}}, następnie {{incode|Render}}, i dla {{incode|Render Engine}} wybierz {{incode|Cycles}}. W przypadku renderera Cycles, Blender będzie stopniowo udoskonalał obraz, aż minie pewna liczba iteracji. Za każdym razem, gdy rzutnia się zmieni, przeliczanie rozpocznie się od nowa. |
|||
{{Code|code= |
{{Code|code= |
||
Line 232: | Line 239: | ||
}} |
}} |
||
16.1. |
16.1. Dostosuj częstotliwość próbkowania. Przejdź do panelu {{incode|Properties}}, następnie {{incode|Render}}, po czym w sekcji {{incode|Sampling}} wybierz odpowiednią liczbę dla {{incode|Render}} i {{incode|Viewport}}. |
||
Dla {{incode|Viewport}} wystarczy niewielka liczba próbek, w zakresie od {{incode|32}} do {{incode|128}}, aby uzyskać dobry podgląd obrazu. W celu uzyskania ostatecznego obrazu należy ustawić {{incode|Render}} na wyższą liczbę, od {{incode|128}} do {{incode|2000}}, w zależności od złożoności i ilości szczegółów sceny. |
|||
Wciśnij klawisz {{KEY|F12}} aby wyrenderować końcowy widok przez kamerę. W zależności od Twojej karty graficznej ''(GPU)'' renderowanie obrazu w Cycles powinno zająć kilka sekund lub minut więcej niż w EEVEE, ale jakość obrazu powinna być lepsza. |
|||
Press {{KEY|F12}} to render the final view through the camera. Depending on your graphics card (GPU) the image should take several more seconds, or minutes, to render with Cycles than with EEVEE, but the quality of the image should be better. |
|||
17. |
17. Kiedy jesteś zadowolony z jakości renderingu, w {{incode|Image Editor}} przejdź do {{MenuCommand|Image → Save As}} lub naciśnij {{KEY|Shift}}+{{KEY|S}}. |
||
[[Image:08_T03_FreeCAD_Blender_Cycles_render.png|600px|center]] |
[[Image:08_T03_FreeCAD_Blender_Cycles_render.png|600px|center]] |
||
{{Caption|align=center| |
{{Caption|align=center|Renderowane złożenie wyprodukowane w Blender Cycles. Wszystkie opcje, materiały i światła, które były używane w EEVEE zostały zachowane do użycia w Cycles.}} |
||
<span id="Rendering_from_the_command_line"></span> |
|||
=== Rendering from the command line === |
|||
===Renderowanie z poziomu wiersza poleceń=== |
|||
18. Jeśli scena jest już całkowicie ukończona, możesz chcieć renderować ją spoza Blendera, z linii poleceń systemu operacyjnego. Może to być przydatne do wsadowego renderowania różnych scen w zdalnym systemie. Zarówno EEVEE jak i Cycles są obsługiwane. |
|||
18. If the scene has been completely finished, you may wish to render from outside Blender, from the operating system's command line. This can be useful to batch render different scenes in a remote system. Both EEVEE and Cycles are supported. |
|||
{{Code|lang=sh|code= |
{{Code|lang=sh|code= |
||
Line 256: | Line 264: | ||
}} |
}} |
||
Pozwala to określić, że renderowanie powinno odbywać się w tle za pomocą {{incode|-b}}., Silnik renderujący jest wybierany za pomocą {{incode|-E}}, nazwa pliku wyjściowego jest wybierana za pomocą {{incode|-o}}, podwójny ukośnik wprzód {{incode|//}} wskazuje ścieżkę względem pliku wejściowego. Znak skrótu {{incode|#}} jest używany do wskazania numeru ramki, w razie potrzeby uzupełnionego zerami, na przykład {{incode|0001}}. Liczba wątków procesora używanych podczas renderowania jest wybierana za pomocą {{incode|-t 3}}, format pliku wyjściowego określa się za pomocą {{incode|-F}}, a opcja {{incode|-x 1}} automatycznie dodaje do nazwy rozszerzenie. Ostatnią opcją jest {{incode|-f 1}}, która oznacza, że renderowana będzie tylko pierwsza klatka, co jest normalnym przypadkiem dla statycznej sceny. W przypadku animacji należy użyć przełącznika {{incode|-a}}, aby dla każdej klatki utworzyć obraz, który następnie można złożyć w plik wideo. |
|||
<span id="Importing_plugin"></span> |
|||
== Importing plugin == |
|||
==Importowanie wtyczek== |
|||
Stworzenie pośredniej siatki Wavefront (.obj) i następnie zaimportowanie jej do Blendera zadziała w większości sytuacji. Jednakże, istnieje również możliwość importu pliku FreeCAD (.FCStd) bezpośrednio do Blendera za pomocą pluginu. |
|||
* [https://gist.github.com/yorikvanhavre/e873d51c8f0e307e333fe595c429ba87 io_import_fcstd.py], |
* [https://gist.github.com/yorikvanhavre/e873d51c8f0e307e333fe595c429ba87 io_import_fcstd.py], oryginalna wersja dla Blendera 2.79 |
||
* [https://gist.github.com/yorikvanhavre/680156f59e2b42df8f5f5391cae2660b FreeCAD .FCStd importer for Blender 2.80] |
* [https://gist.github.com/yorikvanhavre/680156f59e2b42df8f5f5391cae2660b FreeCAD .FCStd importer for Blender 2.80] |
||
Jest to wtyczka do Blendera. Aby działała, Blender musi być w stanie zaimportować FreeCAD jako moduł z {{incode|Python Console}}. |
|||
{{Code|code= |
{{Code|code= |
||
import FreeCAD |
import FreeCAD |
||
}} |
}} |
||
Jest to możliwe tylko wtedy, gdy zarówno Blender jak i FreeCAD są skompilowane z tą samą {{incode|pythonX.Y}} ''(główną i podrzędną)'' wersją. Na przykład, jeśli Blender jest skompilowany z wersją środowiska Python 3.7, FreeCAD również musi być skompilowany z wersją Python 3.7. Jeśli FreeCAD jest skompilowany z inną wersją, na przykład Python 2.7.15 lub Python 3.6.7, wtyczka nie będzie działać. Numer wersji mikro ''(trzecia cyfra)'' nie ma znaczenia, to znaczy, że wtyczka powinna działać, jeśli jeden program jest skompilowany z Pythonem 3.7.5, a drugi z Pythonem 3.7.8. |
|||
Dodatkowo, prekompilowany moduł FreeCAD w Pythonie, {{incode|FreeCAD.so}} w Linuksie i {{incode|FreeCAD.pyd}} w Windows, powinien znajdować się w ścieżce Pythona używanej przez Blendera do importowania modułów. Ścieżka ta może być ustawiona na różne sposoby, w zależności od systemu operacyjnego i dystrybucji środowiska Python. |
|||
W Blenderze możesz zobaczyć wszystkie przeszukiwane ścieżki poprzez sprawdzenie zmiennej {{incode|sys.path}}. Moduł FreeCAD powinien znajdować się w każdym z tych katalogów. |
|||
{{Code|code= |
{{Code|code= |
||
import sys |
import sys |
||
print(sys.path)}} |
print(sys.path)}} |
||
* Kopia lub dowiązanie symboliczne wewnątrz jednego z tych katalogów może zostać utworzone wskazując na moduł FreeCAD. |
|||
* A copy or symbolic link inside one of those directories could be created pointing to the FreeCAD module. |
|||
{{Code|code= |
{{Code|code= |
||
ln -s /usr/lib/freecad/lib/FreeCAD.so $HOME/.config/blender/2.80/scripts/addons |
ln -s /usr/lib/freecad/lib/FreeCAD.so $HOME/.config/blender/2.80/scripts/addons |
||
Line 285: | Line 294: | ||
}} |
}} |
||
* Inną możliwością jest dodanie modułu bezpośrednio do ścieżki wewnątrz Blendera. |
|||
* Another possibility is adding the module directly into the path inside Blender. |
|||
{{Code|code= |
{{Code|code= |
||
import sys |
import sys |
||
Line 291: | Line 300: | ||
}} |
}} |
||
<span id="Final_notes"></span> |
|||
== Final notes == |
|||
==Uwagi końcowe== |
|||
EEVEE nie jest fizycznie dokładnym rendererem, jednak jego główną siłą jest to, że jest to silnik czasu rzeczywistego, więc jest w stanie produkować szybkie renderingi bezpośrednio w rzutni 3D. W wielu przypadkach obrazy te mają wystarczającą jakość dla końcowej produkcji, co oznacza, że możliwe jest uzyskanie dobrego rezultatu w bardzo krótkim czasie. W przypadkach, gdy pożądane są złożone interakcje światła ''(odbicia, załamania, światło wolumetryczne i kaustyka)'', EEVEE jest bardziej ograniczony i wymaga pewnych opcji i sztuczek, aby obejść niektóre z tych ograniczeń. |
|||
Z drugiej strony, Cycles jest prawdziwym rendererem raytracingowym, co oznacza, że jest bardziej dokładny w obliczaniu ścieżek światła w przestrzeni sceny. Cycles jest zalecanym rendererem, gdy pożądana jest najwyższa jakość ''(fotorealistyczne rezultaty)'', kosztem dłuższego czasu renderowania. |
|||
Oba renderery mogą być użyte w celu wykorzystania zalet każdego z nich. W wielu przypadkach scena może być szybko przygotowana i przetestowana z EEVEE, aby uzyskać wstępne renderingi. Następnie ta sama scena może być użyta z niewielkimi zmianami z Cycles, aby uzyskać wyższej jakości, ostateczny rendering. W szczególności, gdy scena, która została ustawiona w EEVEE będzie używana w Cycles, światła mogą wymagać korekty wartości i pozycji, jako że oba renderery traktują światło w różny sposób. |
|||
EEVEE is not a physically accurate renderer, however its main strength is that it is a real time engine so it is able to produce quick renderings directly in the 3D viewport. In many cases these images have enough quality for final production, which means it is possible to obtain a good result in a very short time. In cases where complex light interactions are desired (reflections, refractions, volumetric light, and caustics) EEVEE is more limited, and requires some options and tricks to work around some of these limitations. |
|||
Uzyskanie dobrych rezultatów zależy w dużej mierze od opcji renderowania, materiałów i oświetlenia. Shader materiałów {{incode|Principled BSDF}} jest ogólnym rozwiązaniem, które sprawdza się w wielu przypadkach, jednak aby uzyskać prawdziwie fotorealistyczne rezultaty, nadal bardzo ważne jest użycie map tekstur i map normalnych, wraz z dokładnym oświetleniem sceny. |
|||
On the other hand, Cycles is a true raytracing renderer which means it is more accurate at calculating light paths in a scene. Cycles is the recommended renderer when the best quality is desired (photorealistic results), at the cost of more rendering time. |
|||
Both renderers can be used to leverage the advantages of each. In many cases the scene can be quickly prepared and tested with EEVEE to obtain preliminary renderings; then the same scene can be used with minor changes with Cycles in order to produce a higher quality, final rendering. In particular, when a scene that was setup with EEVEE will be used with Cycles, the lights may need to be adjusted in value and position as both renderers treat light in different ways. |
|||
Obtaining good results is highly dependent on the rendering options, the materials, and the lighting. The {{incode|Principled BSDF}} material shader is a generic solution that works well for many cases, however, to produce truly photorealistic results, the use of texture maps and normal maps, along with careful lighting of the scene is still very important. |
|||
{{Tutorials navi{{#translation:}}}} |
|||
{{Raytracing Tools navi{{#translation:}}}} |
{{Raytracing Tools navi{{#translation:}}}} |
||
{{Userdocnavi{{#translation:}}}} |
{{Userdocnavi{{#translation:}}}} |
Latest revision as of 13:15, 14 April 2023
Ćwiczenie |
Temat |
---|
Renderowanie |
Poziom trudności |
średniozaawansowany |
Czas wykonania |
60 minut |
Autorzy |
vocx |
Wersja FreeCAD |
0.18 lub nowszy |
Pliki z przykładami |
brak |
Zobacz również |
- |
Wprowadzenie
Ten poradnik prezentuje jak stworzyć wyrenderowany obraz w programie Blender, zaczynając od części lub zespołu stworzonego w programie FreeCAD. Zakłada on, że użytkownik stworzył już część w programie FreeCAD, lub zaimportował ją do niego. Następnie część ta jest eksportowana do Blendera w celu wyrenderowania.
Przedstawia renderowanie w Blenderze 2.80 z wykorzystaniem zarówno renderera EEVEE jak i Cycles. Demonstruje różne polecenia środowiska Python, które mogą być użyte by wykonać działania szybciej, zarówno w programie FreeCAD jak i Blender.
Podobny opis tego procesu jest zaprezentowany w serii filmów, Renderuj modele Solidworks i FreeCAD w Blenderze, autorstwa Joko Engineering.
FreeCAD
1. Stwórz złożenie, używając zawartości ze środowiska Caęść lub Projekt Części, albo dowolnego innego środowiska, które tworzy obiekty brył, na przykład Architektura. Przypisz kolory lub materiały poszczególnym zawartościom tworzącym złożenie, w przybliżeniu odpowiadające kolorowi, który chcesz uzyskać w renderingu.
Złożenie trzech brył stworzonych w programie FreeCAD, z przypisanymi kolorami lub materiałami.
2. Jeśli twój model jest bardzo szczegółowy, upewnij się, że wartość WIDOKOdchyłka zawartości jest ustawiona na niską wielkość, pomiędzy 0.1
a 0.01
, lub nawet mniejszą. Im niższa jest ta wartość, tym bardziej szczegółowa będzie wyeksportowana siatka, a co za tym idzie, tym lepsza będzie jakość otrzymanego renderu.
Właściwość odchylenia zawartości utworzonych w programie FreeCAD. Wartość odchylenia musi być małe, aby można było eksportować części z dobrą rozdzielczością.
3. Wybierz środowisko Part
, kolejnie z menu Plik → Eksport, lub naciśnij klawisze Ctrl + E, i wyeksportować jako OBJ
.
Alternatywnie, eksport może być wykonany z konsoli Python. Zdefiniuj listę obiektów, które mają być wyeksportowane i użyj funkcji eksportującej z nazwą pliku.
import importOBJ
objs = FreeCAD.ActiveDocument.getObjectsByLabel("Part")[0]
importOBJ.export(objs, "/home/user/assembly.obj")
Uwaga: podczas eksportu do OBJ, tworzone są dwa pliki. Pierwszy zawiera informacje o siatce, assembly.obj
, drugi zawiera definicję materiałów, która w większości przypadków zawiera tylko kolor, assembly.mtl
.
Uwaga 2: Jeśli wynikowy plik OBJ wydaje się być pusty, być może trzeba będzie wyeksportować poszczególne zawartości. W takim przypadku należy zaznaczyć każdą z nich pod częścią i powtórzyć eksport.
import importOBJ
objs = [FreeCAD.ActiveDocument.getObjectsByLabel("Body.base")[0],
FreeCAD.ActiveDocument.getObjectsByLabel("Body.bolt")[0],
FreeCAD.ActiveDocument.getObjectsByLabel("Body.bolt.big")[0]]
importOBJ.export(objs, "/home/user/assembly.obj")
Blender
Przygotowanie modelu
4. Otwórz Blendera. Zmień panel Oś czasu
na konsolę Python
(Shift + F4). To pomoże Ci wprowadzać komendy i widzieć wyniki. Możesz podzielić ten panel tak, aby po jednej stronie pozostała konsola, a po drugiej panel Info
, pozwoli ci to zobaczyć działanie kodu po kliknięciu w interfejs.
Upewnij się, że używasz renderera EEVEE. W panelu Properties
przejdź do Render
, i dla Render Engine
wybierz Eevee
.
bpy.context.scene.render.engine = 'BLENDER_EEVEE'
5. Zaimportuj plik modelu z menu, Pilik → Import → Wavefront (.obj).
Alternatywnie, import można wykonać z poziomu konsoli Python
.
obj_file = "/home/user/assembly.obj"
bpy.ops.import_scene.obj(filepath=obj_file)
6. Zmień skalę.
Jeśli zawartości wydają się być bardzo duże, może być konieczna zmiana jednostek, aby obiekty były wyświetlane w odpowiedniej skali.
W panelu Properties
przejdź do Scene
, Units
i wybierz odpowiednie ustawienia Unit System
, Unit Scale
i Length
.
Dla małych części, możesz chcieć zachować długość na Millimeters
, a skalę na 0.001
. W przypadku większych części, na przykład modelu budynku, może być konieczne ustawienie tych wartości na Meters
i 0.001
. W razie potrzeby wypróbuj inne wartości skali.
Może to być ustawione również z poziomu Python console
.
bpy.context.scene.unit_settings.length_unit = 'MILLIMETERS'
# or bpy.context.scene.unit_settings.length_unit = 'METERS'
bpy.context.scene.unit_settings.scale_length = 0.001
Uwaga: Zmiana skali i jednostek sceny jest konieczna tylko wtedy, gdy chcesz pracować z obiektami w ich prawdziwych wymiarach. Jeśli chcesz tylko szybko wyrenderować scenę, możesz pominąć wszelkie regulacje.
6.1. W przypadku pomniejszenia, gdy widok przycina importowane części, może być konieczne dostosowanie wartości przycinania widoku.
Naciśnij klawisz N, aby wyświetlić panel pomocniczy. Przejdź do sekcji View
i ustaw End
na dużą wartość, na przykład 1E6 mm
lub 1000 m
.
6.2. Jeśli chcesz, możesz również dostosować rozmiar siatki. Przejdź do Overlays
, następnie Guides
i ustaw Scale
dla tej siatki na 0.001
.
7. Ustal obrót obiektów.
Po zaimportowaniu obiekty mogą być obrócone wokół wybranej osi, na przykład o 90 stopni wokół osi X.
Naciśnij klawisz N, aby wyświetlić panel pomocniczy. Wybierz obiekt, przejdź do sekcji Transform
i ustaw Rotation
na 0°
w każdym polu. Zrób to dla każdego obiektu.
Można to zautomatyzować za pomocą małego skryptu, który po prostu ustawia rotację każdego importowanego ciała na zero, z wyjątkiem obiektów wewnątrz tupli fixed_objs
. Może to być przydatne, jeśli importujesz obiekty do istniejącej sceny, gdzie inne obiekty są już we właściwych pozycjach.
fixed_objs = ('Camera', 'Cube', 'Light')
for obj in bpy.data.objects:
if any(s for s in fixed_objs if s in obj.name):
print('%s %s [[No change]]' % (obj.name, obj.rotation_euler))
continue
else:
obj.rotation_euler = (0, 0, 0)
print('%s %s ... rotated' % (obj.name, obj.rotation_euler))
Zespół stworzony w programie FreeCAD zaimportowany do Blendera; model został obrócony, a jednostki sceny dopasowane do zaimportowanych obiektów.
Przygotuj ujęcie kadru
8. Ustaw ujęcie widoku we właściwej pozycji.
Dostosuj rzutnię, aby spojrzeć na model w żądanej orientacji, a następnie naciśnij klawisze Ctrl + Alt + 0 (klawiatura numeryczna), albo użyj opcji z menu View → Align View → Align Active Camera to View.
8.1. Jeśli w ujęciu widoku nic nie widać, być może trzeba dostosować przycięcie. Zaznaczając kamerę w Outliner
, przejdź do panelu Properties
, następnie Object Data
, potem Lens
, a następnie ustaw Clip End
na dużą wartość, na przykład 1E3 mm
lub 1000 m
.
bpy.context.object.data.clip_end = 1e+03
Jeśli widzisz obiekt w ujęciu widoku, możesz teraz szybko wyrenderować model, naciskając F12, co spowoduje otwarcie Image Editor
z wynikiem. Naciśnij Esc, aby wyjść i powrócić do 3D Viewport
.
Pierwszy render montażu w Blenderze, z ujęciem z poprawnym clippingiem, ale bez oświetlenia
Możesz przełączać się między ujęciem widoku a rzutnią 3D, naciskając klawisz 0 na klawiaturze numerycznej. Naciśnięcie klawisza F12 spowoduje wyświetlenie widoku z kamery w dowolnym momencie.
8.2. Jeśli ujęcie wygląda na bardzo małe w rzutni 3D, przejdź do panelu Properties
, następnie Object Data
, potem Viewport Display
i ustaw większą wartość dla pola Size
, na przykład 20 mm
. Włącz także pole wyboru Limits
, aby zobaczyć odległość obcinania ujęcia widoku.
bpy.context.object.data.display_size = 20
bpy.context.object.data.show_limits = True
Przygotuj oświetlenie sceny
9. Zaznacz światło w Outliner
, przejdź do panelu Properties
, następnie Object Data
, naciśnij na Sun
i ustaw Strength
na 5.0
.
bpy.context.object.data.type = 'SUN'
bpy.context.object.data.energy = 5
Spowoduje to przekształcenie światła w lampę słoneczną. Ten typ lampy emituje nieskończoną liczbę równoległych promieni świetlnych, które docierają do sceny pod stałym kątem.
Możesz umieścić lampę słoneczną w dowolnym miejscu rzutni nad swoim modelem, tak aby określić kierunek promieni świetlnych. Dla lampy słonecznej nie ma znaczenia jak blisko lub daleko umieścisz lampę, tylko kierunek promieni, które są definiowane przez rotację obiektu Light
.
bpy.context.active_object.location = (150, 100, 100)
bpy.context.active_object.rotation_euler = (0.6, 0.05, 1.88)
Naciśnij ponownie klawisz F12, aby zobaczyć wstępny render modelu.
Render złożenia w Blenderze z dodaną lampą słoneczną, która emituje równoległe promienie świetlne o stałym kącie
Więcej ustawień: podłoga, oświetlenie globalne, odbicia i miękkie cienie
10. Dodaj płaszczyznę podłogi. Naciśnij klawisze Shift+A, a następnie wybierz Mesh
, Plane
i nadaj mu wymiary około 10 razy większe niż twój model. Ten obiekt będzie służył jako płaszczyzna podłogi lub blat stołu, na którym stoi model. Przesuń również płaszczyznę nieco w dół, tak aby nie przecinała modelu. Wystarczy -1 mm
poniżej obiektu.
bpy.ops.mesh.primitive_plane_add(size=1500, view_align=False, enter_editmode=False, location=(0, 0, -1))
11. Ustaw iluminację świata. W panelu Properties
przejdź do World
i ustaw Color
na wartość jasnoniebiesko-szarą, RGB (0.358, 0.512, 0.527)
, a także ustaw Strength
na 0.3
.
12. Ustaw odbicia i cienie. Renderer EEVEE w Blenderze produkuje szybkie obrazy poprzez dezaktywację większości efektów na początku. W celu uzyskania lepszych obrazów, niektóre opcje muszą być uaktywnione.
Przejdź do panelu Properties
, następnie Render
i zaznacz opcję Screen Space Reflections
. W sekcji Shadows
zaznacz również opcję Soft Shadows
.
bpy.context.scene.eevee.use_ssr = True
bpy.context.scene.eevee.use_soft_shadows = True
Ustawienie rodzaju materiału dla obiektów
13. Zmień panel Python Console
w panel Shader Editor
(Shift+F3).
13.1. Zaznacz płaszczyznę podłoża, przejdź do panelu Properties
, następnie Material
i kliknij przycisk New
. W oknie Shader Editor
powinien pojawić się węzeł Principled BSDF
. Nadaj mu beżowy kolor Base Color
RGB (0.318, 0.267, 0.187)
, suwak Metallic
ustaw na 0.000
, a suwak Roughness
na 1.000
.
Podstawowy shader BSDF używany w Blenderze do symulacji różnych materiałów, od błyszczących metali po szorstkie i nieprzezroczyste bryły..
13.2. Zaznacz każdą z części modelu i dostosuj odpowiedni węzeł materiałowy Principled BSDF
. W przypadku części metalowych ustaw właściwość Metallic
na wartość 1.000
. Dostosuj wartość właściwości Roughness
, aby mieściła się w przedziale od 0.2
do 0.7
. Im bardziej 0.000
zbliża się do wartości Roughness
, tym bardziej będzie się odbijał (przypominał lustro).
W przypadku materiałów innych niż metale, takich jak tworzywa sztuczne, drewno i tkaniny, ustaw suwak Metallic
na wartość 0.000
, a wartość parametru Roughness
na wartość pomiędzy 0.4
a 1.0
.
Ogólnie rzecz biorąc, metale są naturalnie gładkie i dlatego ich wartość chropowatości jest mała, co sprawia, że są bardzo odblaskowe (błyszczące). Inne materiały są mikroskopijnie szorstkie i dlatego nie odbijają tak dużo światła, co czyni je nieprzezroczystymi.
14. Testuj różne kombinacje materiałów, aż do uzyskania akceptowalnego wyglądu. Wciśnij Z a następnie 8 W tym trybie renderer EEVEE pokazuje w czasie rzeczywistym na rzutni 3D, jak będzie wyglądał końcowy obraz. Użyj Z by otworzyć menu pie i przełączyć się z powrotem do trybu Solid
(Z 6), lub przejść do trybu LookDev
(Z 2), trybu który dodaje różne rodzaje oświetlenia do sceny by przetestować wygląd materiałów.
Naciśnij przycisk F12, aby wyświetlić widok z kamery i sprawdzić jakość obrazu.
Renderowanie i zapisywanie
15. Jeśli Twój model wygląda w miarę dobrze z rendererem EEVEE możesz już zapisać obraz poprzez Image → Save As lub naciskając Shift+S w Image Editor
.
Renderowane złożenie wykonane w Blenderze EEVEE. Wszystkie materiały używają shadera Principled BSDF, użyta jest tylko jedna lampa słoneczna, z niewielką ilością światła otoczenia.
16. Jeśli chcesz poprawić jakość obrazu, wypróbuj renderer Cycles.
Przejdź do panelu Properties
, następnie Render
, i dla Render Engine
wybierz Cycles
. W przypadku renderera Cycles, Blender będzie stopniowo udoskonalał obraz, aż minie pewna liczba iteracji. Za każdym razem, gdy rzutnia się zmieni, przeliczanie rozpocznie się od nowa.
bpy.context.scene.render.engine = 'CYCLES'
16.1. Dostosuj częstotliwość próbkowania. Przejdź do panelu Properties
, następnie Render
, po czym w sekcji Sampling
wybierz odpowiednią liczbę dla Render
i Viewport
.
Dla Viewport
wystarczy niewielka liczba próbek, w zakresie od 32
do 128
, aby uzyskać dobry podgląd obrazu. W celu uzyskania ostatecznego obrazu należy ustawić Render
na wyższą liczbę, od 128
do 2000
, w zależności od złożoności i ilości szczegółów sceny.
Wciśnij klawisz F12 aby wyrenderować końcowy widok przez kamerę. W zależności od Twojej karty graficznej (GPU) renderowanie obrazu w Cycles powinno zająć kilka sekund lub minut więcej niż w EEVEE, ale jakość obrazu powinna być lepsza.
17. Kiedy jesteś zadowolony z jakości renderingu, w Image Editor
przejdź do Image → Save As lub naciśnij Shift+S.
Renderowane złożenie wyprodukowane w Blender Cycles. Wszystkie opcje, materiały i światła, które były używane w EEVEE zostały zachowane do użycia w Cycles.
Renderowanie z poziomu wiersza poleceń
18. Jeśli scena jest już całkowicie ukończona, możesz chcieć renderować ją spoza Blendera, z linii poleceń systemu operacyjnego. Może to być przydatne do wsadowego renderowania różnych scen w zdalnym systemie. Zarówno EEVEE jak i Cycles są obsługiwane.
blender -b assembly.blend -E BLENDER_EEVEE -o //assembly_EEVEE_#### -t 3 -F PNG -x 1 -f 1
blender -b assembly.blend -E CYCLES -o //assembly_CYCLES_#### -t 3 -F PNG -x 1 -f 1
Pozwala to określić, że renderowanie powinno odbywać się w tle za pomocą -b
., Silnik renderujący jest wybierany za pomocą -E
, nazwa pliku wyjściowego jest wybierana za pomocą -o
, podwójny ukośnik wprzód //
wskazuje ścieżkę względem pliku wejściowego. Znak skrótu #
jest używany do wskazania numeru ramki, w razie potrzeby uzupełnionego zerami, na przykład 0001
. Liczba wątków procesora używanych podczas renderowania jest wybierana za pomocą -t 3
, format pliku wyjściowego określa się za pomocą -F
, a opcja -x 1
automatycznie dodaje do nazwy rozszerzenie. Ostatnią opcją jest -f 1
, która oznacza, że renderowana będzie tylko pierwsza klatka, co jest normalnym przypadkiem dla statycznej sceny. W przypadku animacji należy użyć przełącznika -a
, aby dla każdej klatki utworzyć obraz, który następnie można złożyć w plik wideo.
Importowanie wtyczek
Stworzenie pośredniej siatki Wavefront (.obj) i następnie zaimportowanie jej do Blendera zadziała w większości sytuacji. Jednakże, istnieje również możliwość importu pliku FreeCAD (.FCStd) bezpośrednio do Blendera za pomocą pluginu.
- io_import_fcstd.py, oryginalna wersja dla Blendera 2.79
- FreeCAD .FCStd importer for Blender 2.80
Jest to wtyczka do Blendera. Aby działała, Blender musi być w stanie zaimportować FreeCAD jako moduł z Python Console
.
import FreeCAD
Jest to możliwe tylko wtedy, gdy zarówno Blender jak i FreeCAD są skompilowane z tą samą pythonX.Y
(główną i podrzędną) wersją. Na przykład, jeśli Blender jest skompilowany z wersją środowiska Python 3.7, FreeCAD również musi być skompilowany z wersją Python 3.7. Jeśli FreeCAD jest skompilowany z inną wersją, na przykład Python 2.7.15 lub Python 3.6.7, wtyczka nie będzie działać. Numer wersji mikro (trzecia cyfra) nie ma znaczenia, to znaczy, że wtyczka powinna działać, jeśli jeden program jest skompilowany z Pythonem 3.7.5, a drugi z Pythonem 3.7.8.
Dodatkowo, prekompilowany moduł FreeCAD w Pythonie, FreeCAD.so
w Linuksie i FreeCAD.pyd
w Windows, powinien znajdować się w ścieżce Pythona używanej przez Blendera do importowania modułów. Ścieżka ta może być ustawiona na różne sposoby, w zależności od systemu operacyjnego i dystrybucji środowiska Python.
W Blenderze możesz zobaczyć wszystkie przeszukiwane ścieżki poprzez sprawdzenie zmiennej sys.path
. Moduł FreeCAD powinien znajdować się w każdym z tych katalogów.
import sys
print(sys.path)
- Kopia lub dowiązanie symboliczne wewnątrz jednego z tych katalogów może zostać utworzone wskazując na moduł FreeCAD.
ln -s /usr/lib/freecad/lib/FreeCAD.so $HOME/.config/blender/2.80/scripts/addons
ln -s /usr/lib/freecad/lib/FreeCAD.so $HOME/.local/lib/python3.7/site-packages
- Inną możliwością jest dodanie modułu bezpośrednio do ścieżki wewnątrz Blendera.
import sys
sys.path.append("/usr/lib/freecad/lib/FreeCAD.so")
Uwagi końcowe
EEVEE nie jest fizycznie dokładnym rendererem, jednak jego główną siłą jest to, że jest to silnik czasu rzeczywistego, więc jest w stanie produkować szybkie renderingi bezpośrednio w rzutni 3D. W wielu przypadkach obrazy te mają wystarczającą jakość dla końcowej produkcji, co oznacza, że możliwe jest uzyskanie dobrego rezultatu w bardzo krótkim czasie. W przypadkach, gdy pożądane są złożone interakcje światła (odbicia, załamania, światło wolumetryczne i kaustyka), EEVEE jest bardziej ograniczony i wymaga pewnych opcji i sztuczek, aby obejść niektóre z tych ograniczeń.
Z drugiej strony, Cycles jest prawdziwym rendererem raytracingowym, co oznacza, że jest bardziej dokładny w obliczaniu ścieżek światła w przestrzeni sceny. Cycles jest zalecanym rendererem, gdy pożądana jest najwyższa jakość (fotorealistyczne rezultaty), kosztem dłuższego czasu renderowania.
Oba renderery mogą być użyte w celu wykorzystania zalet każdego z nich. W wielu przypadkach scena może być szybko przygotowana i przetestowana z EEVEE, aby uzyskać wstępne renderingi. Następnie ta sama scena może być użyta z niewielkimi zmianami z Cycles, aby uzyskać wyższej jakości, ostateczny rendering. W szczególności, gdy scena, która została ustawiona w EEVEE będzie używana w Cycles, światła mogą wymagać korekty wartości i pozycji, jako że oba renderery traktują światło w różny sposób.
Uzyskanie dobrych rezultatów zależy w dużej mierze od opcji renderowania, materiałów i oświetlenia. Shader materiałów Principled BSDF
jest ogólnym rozwiązaniem, które sprawdza się w wielu przypadkach, jednak aby uzyskać prawdziwie fotorealistyczne rezultaty, nadal bardzo ważne jest użycie map tekstur i map normalnych, wraz z dokładnym oświetleniem sceny.
- Przybory: Nowy projekt Raytracing, Nowy projekt Luxrender, Wstaw część, Resetuj ujęcie widoku, Eksport projektu, Renderowanie
- Narzędzia: Eksport widoku, Eksport ujęcia widoku, Eksport Części
- Dodatkowe: Ustawienia
- Jak zacząć
- Instalacja: Pobieranie programu, Windows, Linux, Mac, Dodatkowych komponentów, Docker, AppImage, Ubuntu Snap
- Podstawy: Informacje na temat FreeCAD, Interfejs użytkownika, Profil nawigacji myszką, Metody wyboru, Nazwa obiektu, Edytor ustawień, Środowiska pracy, Struktura dokumentu, Właściwości, Pomóż w rozwoju FreeCAD, Dotacje
- Pomoc: Poradniki, Wideo poradniki
- Środowiska pracy: Strona Startowa, Architektura, Assembly, CAM, Rysunek Roboczy, MES, Inspekcja, Siatka, OpenSCAD, Część, Projekt Części, Punkty, Inżynieria Wsteczna, Robot, Szkicownik, Arkusz Kalkulacyjny, Powierzchnia 3D, Rysunek Techniczny, Test Framework