본문 바로가기

쉐이더

(25)
OpenGL with Python 2: Drawing a Triangle OpenGL에서 데이터를 한 번 그래픽 카드로 보내고 그래픽 카드에서 준비된 리소스를 계속 사용한다. 왜냐하면 CPU와 그래픽 카드 간의 연결이 성능의 가장 큰 병목 현상이기 때문이다. 코드 전체코드 import pygame as pg from OpenGL.GL import * import numpy as np import ctypes from OpenGL.GL.shaders import compileProgram, compileShader class App: def __init__(self): #initialize Python pg.init() pg.display.set_mode((640,480), pg.OPENGL|pg.DOUBLEBUF) self.clock = pg.time.Clock() #init..
[블렌더] Separate color & Combine Color Node Separate color 노드 색상을 RGB,HSV,HSL로 분리할 수 있다. Combine Color 노드 Separate color로 제거된 rgb색상을 복원할 수 있다. Separate color와 Combine Color노드 사이에 RGB Curves나 bright/contrast노드 같은 것을 넣는다.
[블렌더] White Noise Texture 타일에서 특정 셀 값을 랜덤으로 변경할때 사용한다. 4D로 바꾸고 W를 변경하면 W가 Random seed 역활을 할 수 있다.
[블렌더] Vector Math Node math노드와 많이 비슷하다. 다만, 벡터이기 때문에 3개의 값을 한개의 벡터로 사용하고, 여러개의 math노드를 사용하면 순서가 중요하다. 사용가능한 함수 옵션
[블렌더] Map Range Node colorRamp 노드와 비슷하다. From min: colorRamp에서 맨 앞의 값의 pos값 From max: colorRamp에서 맨 뒤의 값의 pos값 To Min: colorRamp에서 맨 앞의 값의 HSV중 V값 To Max: colorRamp에서 맨 의 값의 HSV중 V값 범위 옵션
[블렌더] checker texture color1,color2로 체크판 색을 조정할 수 있고, scale은 체크판의 가로,세로의 갯수를 설정할 수 있다.
[블렌더] Displacement & Invert Node Displacement node Displacement node를 사용하려면 cycles engine-experimental, render mode, material에 settings-surface-displacement를 displacement and Bump로 변경해야 displacement가 반영이 된다. subdivision-sample과 adaptive subdivision을 키면 자동으로 정렬된다. object space: 스케일 시 높이도 같이 커진다. world space: 스케일시 높이는 유지되면서 커진다. 원하는 부분에 displacement를 주려면 displacement map을 이용하면 된다. Invert Node 색상을 반전하거나 노드에 연결된 값을 반전할 때 사용 ※ 한번 랜더..
[블렌더] Brick Texture 바닥용 타일, 나무판자, 나무마루판등 옵션을 조정하여 벽돌뿐 아니라 길쭉한 모양의 텍스처를 만들 수 있다. offset: 다음줄의 오프셋을 설정 frequency: 얼마나 자주 오프셋을 설정할지 결정(몇번째 줄에서 오프셋을 줄지 결정할 수 있다.) squash: 특정 줄의 벽돌의 길이를 결정 frequency: 몇번째 줄에서 오프셋을 줄지 결정할 수 있다. color1, color2: 두개의 색의 혼합으로 벽돌을 구성 mortar: 벽돌 사이의 색을 설정 scale: 벽돌 텍스처의 사이즈를 결정 mortar size: 벽돌 사이 크기를 결정 mortar smooth: 벽돌 사이의 부드러움을 결정 bias: -1이면 벽돌이 color1 색을 가지고, 1이면 벽돌이 color2 색을 가진다. brick wi..
[블렌더] math node Add 위와 아래의 value 2개를 더한다. Clamp 옵션은 결과값을 0과 1사이로 고정한다. Subtract 위와 아래의 value 2개를 뺀다. Clamp 옵션은 결과값을 0과 1사이로 고정한다. - Multiply 위와 아래의 value 2개를 곱한다. Clamp 옵션은 결과값을 0과 1사이로 고정한다. - Divide 위와 아래의 value 2개를 나눈다. Clamp 옵션은 결과값을 0과 1사이로 고정한다. Ping Pong 바깥쪽이 0으로 시작해서 multiply값이 증가할 수록 안에 띠가 한개씩 생긴다. ping pong노드의 스케일을 올리면 그 배수만큼 multiply의 값을 증가해야 띠가 생긴다.
[블렌더] B&W Maps Black and white map을 이용하여 원하는 부분에 원하는 쉐이더를 넣을 수 있다. 먼저 이미지 에디터로 들어가서 새로운 이미지를 만들고, 흰색으로 원하는 부분에 페인팅을 한다. 만든 이미지를 저장한다. 만든 이미지 위해 uv mapping을 한다. 오트젝트를 에딧모드로 들어가고 U에서 smart UV Project를 한다. uv Editer에 들어가보면 정상적으로 맵핑이 되었다. 쉐이더에 들어가서 아래와 같이 만들면 원하는 부분에 서로 다른 쉐이더를 적용할 수 있다.