Forum Polskiego Kursu Blendera

Kurs Blendera dla wszystkich Polaków!

Sterowanie kolorem materialu Emission nodem w kompozytorze

Autor Wątek: Sterowanie kolorem materialu Emission nodem w kompozytorze  (Przeczytany 217 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

Offline Ka21k

  • Nowy użytkownik
  • *
  • Wiadomości: 9
  • Reputacja +0/-0
  • Płeć: Mężczyzna
  • jestem tu nowy!
    • Zobacz profil
Witam.

Czy jest możliwość pobrania koloru z materiału emission w kompozytorze za pomocą jakiegoś noda?
Chciałbym nadać efekt Glare w tym samym kolorze co emitowane światło z materiału emission.
Dla przykładu pionowy pręt ma niebieskie emission ale Glare czerwone.
Podobnie z drugim obiektem.
Chiałbym żeby kolor glare był automatycznie dobierany z koloru emission.

https://imgur.com/a/XMOK6





Offline Remik

  • Ekspert
  • *
  • Wiadomości: 2382
  • Reputacja +115/-9
  • Płeć: Mężczyzna
    • Zobacz profil
Odp: Sterowanie kolorem materialu Emission nodem w kompozytorze
« Odpowiedź #1 dnia: 20171112, 17:41:42 »
Nie wiem czy dobrze rozumiem, ale możesz przełączyć się w palecie kolorów na HEX i skopiować sobie kod koloru i wkleić go tam gdzie potrzebujesz. Jak chcesz kolor przenieść w tym samym drzewku nodów to możesz go zwyczajnie przeciągnąć z jednego noda na drugi lub użyć pickera.

Offline Ka21k

  • Nowy użytkownik
  • *
  • Wiadomości: 9
  • Reputacja +0/-0
  • Płeć: Mężczyzna
  • jestem tu nowy!
    • Zobacz profil
Odp: Sterowanie kolorem materialu Emission nodem w kompozytorze
« Odpowiedź #2 dnia: 20171112, 21:48:20 »
Wielkie dzięki za szybką odpowiedź ale nie do końca mi o to chodzi.
Mam na myśli czy da się z poziomu kompozytora pobierać kolory z materiałów automatycznie.
Załóżmy, że chciałbym animować zmianę koloru w materiale Emission a w post-processingu  dodawać Glare w tym samym kolorze.
Nie będę chyba ręcznie kopiował koloru dla każdej klatki z materiału do Glare?
Czy jest jakiś dostęp do właściwości materiału z poziomu kompozytora?

Offline winhelp

  • Użytkownik
  • *
  • Wiadomości: 189
  • Reputacja +13/-0
  • Płeć: Mężczyzna
  • Miłego dnia!
    • Zobacz profil
Odp: Sterowanie kolorem materialu Emission nodem w kompozytorze
« Odpowiedź #3 dnia: 20171112, 22:24:11 »
A to nie lepiej pokolorować emission i glare zamiast kombinować w drugą stronę?

Offline Ka21k

  • Nowy użytkownik
  • *
  • Wiadomości: 9
  • Reputacja +0/-0
  • Płeć: Mężczyzna
  • jestem tu nowy!
    • Zobacz profil
Odp: Sterowanie kolorem materialu Emission nodem w kompozytorze
« Odpowiedź #4 dnia: 20171113, 23:15:40 »
winhelp - nie za bardzo wiem co masz na myśli. Jeśli da się to jakoś zrobić to proszę o rozwinięcie twojej odpowiedzi.
mogę oczywiście ręcznie ustawić takie same kolory dla emission i dla Glare ale co jeśli moje emission będzie zmieniało kolor co klatkę w 1000 klatkowej animacji?

Offline winhelp

  • Użytkownik
  • *
  • Wiadomości: 189
  • Reputacja +13/-0
  • Płeć: Mężczyzna
  • Miłego dnia!
    • Zobacz profil
Odp: Sterowanie kolorem materialu Emission nodem w kompozytorze
« Odpowiedź #5 dnia: 20171114, 00:13:14 »
Nie wiem czy tak się da - ale ja bym kombinował zrobić biały emission jako warstwę i go kolorować i nakładać na render.

Offline Arek

  • Ekspert
  • *
  • Wiadomości: 3386
  • Reputacja +421/-3
  • Płeć: Mężczyzna
    • Zobacz profil
  • Gadu Gadu: 49396350
Odp: Sterowanie kolorem materialu Emission nodem w kompozytorze
« Odpowiedź #6 dnia: 20171114, 01:10:07 »
A nie prościej wszystkie obiekty z Emmision umieścić na innej warstwie i utworzyć drugą warstwę renderu tylko dla tego Emmision wraz z maskowaniem warstwy z obiektem docelowym. Można dodatkowo dla warstwy z Emmision ustawić mniej sampli renderu, emmision nie wymaga dużej ilości sampli a render będzie szybszy.
Wtedy kolor emmison może być dowolny, a Glare lub Blur będzie zawsze miał właściwy kolor.

Nody z kompozytora i z Cycles kiepsko z sobą współpracują, nawet, gdy chce się połączyć coś przy pomocy driverów. Także ten kierunek raczej chyba nie wyjdzie. Może przy pomocy skryptu coś by wyszło, ale nie próbowałem.

Offline winhelp

  • Użytkownik
  • *
  • Wiadomości: 189
  • Reputacja +13/-0
  • Płeć: Mężczyzna
  • Miłego dnia!
    • Zobacz profil
Odp: Sterowanie kolorem materialu Emission nodem w kompozytorze
« Odpowiedź #7 dnia: 20171114, 21:40:14 »
O czymś takim właśnie myślałem :)

Offline Ka21k

  • Nowy użytkownik
  • *
  • Wiadomości: 9
  • Reputacja +0/-0
  • Płeć: Mężczyzna
  • jestem tu nowy!
    • Zobacz profil
Odp: Sterowanie kolorem materialu Emission nodem w kompozytorze
« Odpowiedź #8 dnia: 20171115, 17:39:52 »
Arek.

Wielkie dzięki za wyczerpujący opis, ale czy takie rozwiązanie jest prawidłowe?
Załóżmy, że umieszczę wszystkie obiekty emitujące światło na jednej warstwie żeby łatwiej było podpiąć Glare i  inne efekty, ale co wtedy z główną sceną i obiektami które powinny być przez ten emission oświetlone?
Czy wtedy nie musiał bym mieć dodatkowych kopi światła tylko dla tych obiektów? I czy wtedy nie wrócił bym do punktu wyjścia gdzie musiał bym osobno ustawiać kolory świateł dla obiektów na jednej warstwie i dla Emission na innej?
Na przykładowym renderze który załączyłem w pierwszym poście widać, że światło oświetlające obiekty jest różne od tego w jaki sposób świecą obiekty z Emission.
Zrobiłem to celowo bo materiały Emission miały oryginalnie takie właśnie kolory ale nałożony Glare już nie.
Jest ku temu powód i zaraz wytłumaczę jaki.
Szukałem w internecie tutoriali i informacji jak do diabła wyrenderować efekt Glare na przeźroczystym tle i nigdzie nic na ten temat nie ma.
Winny jest sposób liczenia kanału alfa i problemy wynikające przez algorytm mnożenia przy wyliczaniu koloru efektu Glare.
Obecnie próbuję zrobić banner na stream dla OBS Studio i zależy mi na tym żeby cała animacja była wyrenderowana z przeźroczystym tłem.
Nie chcę się bawić w żadne kluczowanie koloru bo źle to wygląda i dodatkowo obciąża procesor podczas streamu.
Dodatkowo chcę mieć ten Glare który ma mi się rozmywać w Alfie i mieszać z tłem ze streamu.
Jedyne rozwiązanie do jakiego doszedłem po tygodniu ciężkich walk z nodami w Blenderze przedstawiłem na screenie w pierwszym poście.
Niestety ten sposób wymusza dodatkowo kolorowanie efektu Glare bo renderuje się on jako biały (co przy okazji użyłem jako maski).
Ten kto próbował wyrenderować taki efekt na przeźroczystym tle i dodatkowo wyświetlić to w kompozytorze to wie o czym mówię.
Dlatego też aby ominąć dodatkowego kolorowania efektów Glare dla każdego materiału Emission w scenie szukam sposobu aby taki kolor pobrać jakoś bezpośrednio z materiału dla którego nakładam ten efekt.
Nie znam blendera prawie w ogóle więc nie wiem gdzie szukać, ale pomyślałem, że może Blender Game Engine miałby taką możliwość?
Ktoś coś wie jakie są opcje dostępu do materiałów z tego poziomu?

Offline Arek

  • Ekspert
  • *
  • Wiadomości: 3386
  • Reputacja +421/-3
  • Płeć: Mężczyzna
    • Zobacz profil
  • Gadu Gadu: 49396350
Odp: Sterowanie kolorem materialu Emission nodem w kompozytorze
« Odpowiedź #9 dnia: 20171115, 21:29:34 »
Cytuj
Wielkie dzięki za wyczerpujący opis, ale czy takie rozwiązanie jest prawidłowe?
Załóżmy, że umieszczę wszystkie obiekty emitujące światło na jednej warstwie żeby łatwiej było podpiąć Glare i  inne efekty, ale co wtedy z główną sceną i obiektami które powinny być przez ten emission oświetlone?
Czy wtedy nie musiał bym mieć dodatkowych kopi światła tylko dla tych obiektów? I czy wtedy nie wrócił bym do punktu wyjścia gdzie musiał bym osobno ustawiać kolory świateł dla obiektów na jednej warstwie i dla Emission na innej?

To jest właśnie mechanizm Blendera do takich właśnie zastosowań. Umieszczasz na jednej (np drugiej), oddzielnej warstwie pewne obiekty, dla których chcesz później zastosować pewne efekty, natomiast resztę sceny pozostawiasz na powiedzmy pierwszej warstwie. Mechanizm polega na tym, że renderujesz obydwie warstwy razem, natomiast Blender rozdziela cały render na dwie warstwy (zależy ile tych warstw renderu się ustawiło). Z racji tego, że renderowane są obydwie wartswy, wszelkie wzajemne powiązania między tymi warstwami typu: oświetlenie, cienie... wpływają na siebie, mimo że na poszczególnych warstwach nie widać danych obiektów:
Przykład ze zdjęcia powyżej, ale tylko pierwsza warstwa:

https://images2.imgbox.com/86/9c/pOF3t1jU_o.png
Sterowanie kolorem materialu Emission nodem w kompozytorze


Oświetlenie rurek z materiałem Emission oświetlają ten obiekt, mimo, że ich nie widać.

Na drugiej warstwie są tylko rurki, dodatkowo maskowane przez pierwszą warstwę, aby, wycinało z renderu miejsca, gdzie coś jest przesłaniane przez obiekty na warstwie pierwszej (np kulka z warstwy pierszej). Tu też, jakby coś z warstwy pierszej jakoś te obiekty oświetlało, byłoby to widoczne.

https://images2.imgbox.com/5c/53/sYExO4Fh_o.png
Sterowanie kolorem materialu Emission nodem w kompozytorze


No i finalnie po połączeniu składa się to w pewną całość:

https://images2.imgbox.com/13/1d/BAFC3PiQ_o.png
Sterowanie kolorem materialu Emission nodem w kompozytorze


Cytuj
Obecnie próbuję zrobić banner na stream dla OBS Studio i zależy mi na tym żeby cała animacja była wyrenderowana z przeźroczystym tłem.
Nie chcę się bawić w żadne kluczowanie koloru bo źle to wygląda i dodatkowo obciąża procesor podczas streamu.
Dodatkowo chcę mieć ten Glare który ma mi się rozmywać w Alfie i mieszać z tłem ze streamu.
Jedyne rozwiązanie do jakiego doszedłem po tygodniu ciężkich walk z nodami w Blenderze przedstawiłem na screenie w pierwszym poście.
Niestety ten sposób wymusza dodatkowo kolorowanie efektu Glare bo renderuje się on jako biały (co przy okazji użyłem jako maski).

Tu mówiąc szczerze trochę kończy mi się zrozumienie wszystkiego. Bo też w pierwszym poście piszesz:
Cytuj
Chciałbym nadać efekt Glare w tym samym kolorze co emitowane światło z materiału emission.
No i to jest dość jasne, ale zaraz potem:
Cytuj
Dla przykładu pionowy pręt ma niebieskie emission ale Glare czerwone.
Chcesz, aby inny kolor emmision miał obiekt, a innym oświetlał? No jest to do załatwienia, nawet dość prosto w samym Cycles. Ale jednak wydaje mi się, że nie do końca rozumiem całości.
Może jeszcze raz:
Cytuj
Jedyne rozwiązanie do jakiego doszedłem po tygodniu ciężkich walk z nodami w Blenderze przedstawiłem na screenie w pierwszym poście.
Niestety ten sposób wymusza dodatkowo kolorowanie efektu Glare bo renderuje się on jako biały

Może to nie jest jedyne rozwiązanie i może rozwiązanie nie jest skomplikowane, ale po zdjęciu w pierwszym poście jakoś nie mogę ogarnąć.
« Ostatnia zmiana: 20171115, 21:34:24 wysłana przez Arek »

Offline Zuorion

  • Aktywny użytkownik
  • *
  • Wiadomości: 358
  • Reputacja +27/-4
  • Zue zuo.
    • Zobacz profil
Odp: Sterowanie kolorem materialu Emission nodem w kompozytorze
« Odpowiedź #10 dnia: 20171115, 22:12:43 »
A co chcesz w ogóle osiągnąć? Bo w sumie to nie napisałeś.


Cytuj
Glare na przeźroczystym tle
np:
https://i.imgur.com/kolH6Zt.png
Sterowanie kolorem materialu Emission nodem w kompozytorze


Offline Ka21k

  • Nowy użytkownik
  • *
  • Wiadomości: 9
  • Reputacja +0/-0
  • Płeć: Mężczyzna
  • jestem tu nowy!
    • Zobacz profil
Odp: Sterowanie kolorem materialu Emission nodem w kompozytorze
« Odpowiedź #11 dnia: 20171115, 23:32:49 »
Przyznaję, że moje tłumaczenia są dość pokręcone. Pewnie to dlatego, że nie za bardzo jeszcze orientuje się w tym jak działa blender i jak dokładnie opisać to co zamierzam zrobić.
Tak czy inaczej Arek i Zuorion rozwiązali mój problem za co bardzo serdecznie dziękuję.
Widać moja znajomość blendera nie wystarczyła do tego żeby ogarnąć jak się okazuje prosty problem.

Zuorion.
Czy mógłbyś rozwinąć grupę nodów RGB Multiply bo nie bardzo wiem jak to skonstruować.

Offline Piotr

  • Administrator
  • Ekspert
  • *
  • Wiadomości: 3876
  • Reputacja +185/-7
  • Płeć: Mężczyzna
  • BFCT
    • Zobacz profil
    • Polski Kurs Blendera
Odp: Sterowanie kolorem materialu Emission nodem w kompozytorze
« Odpowiedź #12 dnia: 20171115, 23:51:00 »
Jest jeszcze jedno rozwiązanie, chyba prostsze trochę od tego, co zaproponował Arek. Możesz wykorzystać indeksowanie materiałów i nod MaskID. Każdy materiał może mieć ustawiony tzw. material index, który ustawiasz dla danego emission (zwykle jest to jeden osobny materiał; jeżeli mieszasz jego kolor to i tak masz material index w końcu). Potem przechodzisz do render pasów, i tam zaznaczasz Material Index oraz Emission. Wtedy Twój nod w Compositorze będzie powiększony o dodatkowe wyjścia - IndexMA oraz Emit. Możesz wyrenderować scenę i wtedy w tych wyjściach renderlayers znajdziesz kolory generowane przez Emission, oraz - w połączeniu z nodem IDmask - wszystkie maski na miejsca, gdzie emission był widoczny. Jeżeli je przemnożysz przez siebie, efektywnie uzyskasz Emission danego materiału tylko tam, gdzie było go widać, w kolorze tego Emission. Następny krok to jakiś blur lub inne przetwarzanie tego typu render-passów, i możesz je dowolnie skleić na powrót ze sceną. Załączam screena i pliczek.
-piotr-

Offline Zuorion

  • Aktywny użytkownik
  • *
  • Wiadomości: 358
  • Reputacja +27/-4
  • Zue zuo.
    • Zobacz profil
Odp: Sterowanie kolorem materialu Emission nodem w kompozytorze
« Odpowiedź #13 dnia: 20171116, 18:00:21 »
Cytuj
znajomość blendera
Raczej systemu Node-based samych w sobie. Bo w UE, Unity (Amplify, SForge), Substance Designer, Nuke, Fusion itp. są często te same nody tylko inaczej nazwane, ale logika pozostaje podobna.


Multiply RGB:
https://i.imgur.com/uk6mvWj.png
Sterowanie kolorem materialu Emission nodem w kompozytorze

alternatywnie

Żółta kropka to kolor, szara to czarno białe (patrz cytat poniżej). Więc jak używałeś math node'a z szarymi wejściami to traciłeś informacje o kolorze.
Więc, żeby wykonać jakąś operację np. pomnożyć (UWAGA! Blender operuje na Linearnych danych koloru a nie sRGB, Więc rezultat Multiply może «ale nie musi» być inny od tego, który oczekujesz po programach typu Photoshop używających przekształceń na sRGB)
To albo rozbijasz dane na poszczególne kanały R,G,B,A i je mnożysz osobno, albo tworzysz vector3 (3 wartości zapisane w osobnym kanale) go używasz w Color Mix'ie.

Each socket is color-coded depending on what type of data it handles.

Color (Yellow)
    Indicates that color information needs to be input or will be output from the node. This may or may not include an alpha channel.
Numeric (Grey)
    Indicates numeric values information. It can either be a single numerical value or a so-called “value map”. (You can think of a value map as a grayscale-map where the different amount of bright/dark reflects the value for each point). If a single value is used as an input for a “value map” socket, all points of the map are set to this same value. Common use: Alpha maps and value options for a node.
Vector (Blue)
    Indicates vector, coordinate and normal information.
Shader (Green)
    Used for shaders in Cycles


Offline Ka21k

  • Nowy użytkownik
  • *
  • Wiadomości: 9
  • Reputacja +0/-0
  • Płeć: Mężczyzna
  • jestem tu nowy!
    • Zobacz profil
Odp: Sterowanie kolorem materialu Emission nodem w kompozytorze
« Odpowiedź #14 dnia: 20171116, 18:32:52 »
Chciałbym serdecznie podziękować wszystkim za pomoc i podzielić się trochę tym co udało mi się już uzyskać.
Mam nadzieję, że uda mi się wstawić obrazek.

https://i.imgur.com/ByxxHqY.png
Sterowanie kolorem materialu Emission nodem w kompozytorze


Teraz gdy mam już to co najważniejsze mogę zabierać się do animowania i nie obędzie się pewnie bez problemów więc nadal liczę na waszą pomoc.
Otwieram więc następny temat tutaj: http://polskikursblendera.pl/forum/index.php/topic,3811.0.html.

 

© Polski Kurs Blendera, CC-BY, 2014