Blenderownia

Blender praktycznie => Python, skrypty, pluginy i Blender Game Engine => Wątek zaczęty przez: mortom.ckm w 30.06.2019 17:29:08

Tytuł: Skrypt do Pass ID
Wiadomość wysłana przez: mortom.ckm w 30.06.2019 17:29:08
Witam
Chciałem sobie ułatwić życie i stworzyć prosty skrypt do automatycznego przydzielania Material ID

Gdzieś w necie znalazłem prosty skrypt:
x=0
for mat in bpy.data.materials:
mat.pass_index = x
x = x+1

Chciałbym trochę go zmodyfikować:
gdy x osiągnie wartość 32 zeruję się i odnowa przydziela ID od 0  i tak w koło macieju dopóki nie skończą się materiały.
Programować nie potrafię i wiem, że to banalna funkcja ale nie wiem jak się za to zabrać.

Pozdr.


Po jakimś czasie wpadłem na taki kod:
import random
x = 0
for mat in bpy.data.materials:
    mat.pass_index = x
    x = random.choice(range(32))

ale nadal wolałbym aby przydzielanie odbywało się co 1 a nie randomowo
Tytuł: Odp: Skrypt do Pass ID
Wiadomość wysłana przez: winhelp w 30.06.2019 19:32:37
A gdyby x było resztą z dzielenia przez 32?
Tytuł: Odp: Skrypt do Pass ID
Wiadomość wysłana przez: mortom.ckm w 30.06.2019 20:06:54
Cytuj
A gdyby x było resztą z dzielenia przez 32?
a jak to zapisać?
Tytuł: Odp: Skrypt do Pass ID
Wiadomość wysłana przez: winhelp w 30.06.2019 23:00:39
Podobno procentem czyli:
x=(x+1)%32Ha! I nawet działa.
>>> x=32
>>> print (x)
32

>>> x=(x+1)%32
>>> print (x)
1

>>> x=64
>>> x=(x+1)%32
>>> print (x)
1
Tytuł: Odp: Skrypt do Pass ID
Wiadomość wysłana przez: mortom.ckm w 01.07.2019 16:28:51
OKi dzięki!!!!!!!!!!!!!!!!!!!

a jak by ktoś takiego potrzebował to kod skryptu ma się tak (i działa):

x = 0
for mat in bpy.data.materials: 
    mat.pass_index = x % 32
    x = x + 1