Вот сценарий Puke для Nuke для создания матрицы проекции камеры и использования красок в качестве текстурной карты. Идея этого заключается в том, чтобы спроецировать трехмерную текстуру всех объектов в средстве просмотра на экранное пространство через выбранную камеру, используя штрихи краски.Картирование 3D-текстур в Foundry Nuke
мне нужно контролировать проецируется текселя оберточной Width
и Height
с помощью пользовательского knobs
в закладке User свойств Camera
узла.
Как это сделать программно?
import nuke
import nukescripts
def paintPoints():
geoNode = nuke.activeViewer().node()
camera = nuke.selectedNode()
if not camera.Class() in ('Camera', 'Camera2'):
nuke.message('Por favor, seleccione un nodo de la cámara primera')
return
geoKnob = geoNode['geo']
objects = geoKnob.getGeometry()
if not objects:
nuke.message('No se han encontrado geometría en %s' % geoNode.name())
pts = []
for o in objects:
objTransform = o.transform()
for p in o.points():
worldP = objTransform * nuke.math.Vector4(p.x, p.y, p.z, 1)
pts.append([worldP.x, worldP.y, worldP.z])
curvesKnob = nuke.createNode('RotoPaint')['curves']
task = nuke.ProgressTask('painting points')
for i, pt in enumerate(pts):
if task.isCancelled():
break
task.setMessage('painting point %s' % i)
stroke = nuke.rotopaint.Stroke(curvesKnob)
pos = nukescripts.snap3d.projectPoint(camera, pt)
ctrlPoint = nuke.rotopaint.AnimControlPoint(pos)
stroke.append(ctrlPoint)
curvesKnob.rootLayer.append(stroke)
task.setProgress(int(float(i)/len(pts)*100))
Я новый разработчик для самого Nuke, поэтому я не знаю, как вы подключаете эти пользовательские регуляторы, чтобы влиять на настройки узла. Будет обновляться, когда я узнаю больше. – Matt
Я знаю, как добавить ручки, спасибо. Мне действительно нужно знать, как контролировать обертывание текстуры через эти кнопки. – andy
Можете ли вы загрузить этот файл Nuke для просмотра? Регулировка значений существующих регуляторов обычно довольно проста. Если вы хотите, чтобы пользовательская ручка настраивала значение других регуляторов, я считаю, что вам нужно использовать выражения. – Matt