Elementos básicos de SOP

Los operadores SOPs, son una estructura conformada por los elementos Point, Privimite, vertex.

Punto
Información de posición 3D
Vértice
Información sobre cómo están conectados y configurados
Primitivo
los cuales pueden ser: Polígonos, mallas, curvas, NURBS, primitivas simples como círculos y esferas, metabolas y partículas, etc., es decir, conjunto de puntos + unidades que tienen información sobre cómo deben ser renderizados.

Esta información puede visualizarse utilizando las tecla P o desde el menú contextual Display Options.

 

Crear geometrias a traves de Python

 

 Los contenidos de DAT son los siguientes.

script1

[su_pullquote]def onCook(scriptOp): scriptOp.clear() new_point = scriptOp.appendPoint() new_point.P = (0.5, 0.5, 0.5)[/su_pullquote]

new_point = scriptOp.appendPoint() // se utiliza para sumar puntos en el espacio.
new_point.P = (0.5, 0.5, 0.5) // se asigna la coordenada del punto.

El operador Info1 nos indica la cantidad de puntos que se encuentran en script1

 

script2

[su_pullquote]def onCook(scriptOp): scriptOp.clear() new_point1 = scriptOp.appendPoint() new_point1.P = (0, 0, 0) new_point2 = scriptOp.appendPoint() new_point2.P = (0.5, 0, 0) new_point3 = scriptOp.appendPoint() new_point3.P = (0.5, 0.5, 0)[/su_pullquote]

En este script scriptOp.appendPoint() aparece 3 veces, generando los 3 puntos, puede utilizar la cantidad de puntos en el espacio que desea, replicando el codigo y la posicion en el espacio de los puntos.

 

 

 

script3

[su_pullquote]def onCook(scriptOp): scriptOp.clear() new_point1 = scriptOp.appendPoint() new_point1.P = (0, 0, 0) new_point2 = scriptOp.appendPoint() new_point2.P = (0.5, 0, 0) new_point3 = scriptOp.appendPoint() new_point3.P = (0.5, 0.5, 0) poly = scriptOp.appendPoly(3, closed=False, addPoints=False) poly[0].point = new_point1 poly[1].point = new_point2 poly[2].point = new_point3[/su_pullquote]

En comparacion con el script anterior, se agrego la siguiente parte poly = scriptOp.appendPoly(3, closed=False, addPoints=False) , la cual conectara los puntos con una linea.

Se crea un poligono primitivo de 3 vertices, debajo continua con el siguiente codigo poly[0].point = new_point1 para especificar cómo deben conectarse los vértices.

Resumen:

Hay multiples puntos

Con un orden de conexion Vertex

Representado por un tipo de forma especifica: primitiva

 

Cuando el numero de vertices es de 10 o mas, se puede utilizar el operador Add Sop

Tipo Primitivo:

Dentro del grupo Primitivo, hay varios tipos según su aplicacion

Primitivo
Un Primitivo es un tipo de superficie: polígono, curva (NURBS y Bezier), parche (NURBS y Bezier).
Tambien podemos encontrar formas como esfera, tubo y metaball.
Se distingue en como se conectan los puntos, los cuales forman un elemento primitivo.
Polígono
Se conectan cada 3 puntos, para formar un polígono triangular.
En la GPU, la geometría es conviertida en polígonos triangulares y se dibuja.
Ventaja en términos de eficiencia.
Malla
Similar a Poligono, pero en este caso maneja un polígono cuadrado, que se conecta cada cuatro puntos.
NURBS, Bezier
En lugar de conectar puntos y caras en línea recta, se dibuja una superficie lisa con curvas calculadas matemáticamente,
utilizando puntos como elementos de control.
Metaball
Puede crear geometrías que se vean con un efecto magnético o biscozo,
convinado con otros operadores, puede atraer o repulsar objetos cercanos.
Partícula
Se utiliza para la simulación de partículas y dibujar nubes de puntos,
por ejemplo se puede obtener la posicion en el espacio de las particulas, y asignar esa posicion a otros objetos 3D.

También puede encontrar más información sobre primitivas en Primitivo-Derivado

 

Conceptos básicos de modelado

«Un cubo que permanece en el piso incluso si cambia de tamaño».

Estoy moviendo el tamaño del cubo con Noise Chop, cuando el tamaño del cubo cambia, se utiliza una expresión que ajusta el parámetro, para que las coordenadas centrales del cubo se muevan en proporcion a la cantidad cambiada, asi la parte inferior siempre permanezca sobre el suelo.

 

 

podemos agregar un operador transform Sop, despues de nuestro box, para tener control del eje Y

Se coloca el codigo -me.inputs[0].min.y en el parametro ty , este codigo significa: «el valor más pequeño del primer SOP de entrada multiplicado por -1».

El desplazamiento del eje Y que se calculó a partir del tamaño del cubo, se utilizó para determinar el desplazamiento basado en el «punto Y mas bajo, en la geometría de entrada». Como resultado, no importa qué SOP se inserte, se aplicará un desplazamiento basado en el piso → El piso se conectará a tierra.

 

Explicación de algunos SOPs

SOP grupal

En los operadores SOP, no hay un mecanismo de capas como Merge Sop, editar puntos arbitrarios se haria dificil. Para eso podemos usar Group SOP, el cual establece grupos para Punto, Vértice y Primitivos, y nos permite tener un mayor control individual de las diferentes partes en nuestra geometria.

 

Una vez especificado el grupo, puede seleccionarse en el cuadro de texto de cada SOP, con el cual podremos mover cada vertice, puede manipular los puntos seleccionados, a traves de un transform sop.

Al colocar la ID de la primitiva en el cuadro de texto, se puede obtener el mismo efecto sin crear un grupo.

Convertir SOP

Nos permite convertir Sops a otra familia, por ejemplo:

  • Convertir malla a polígono
  • Convertir línea de polígono a NURBS o Bezier
  • Convertir polígono a partículas

Faceta SOP

Divide y une vértices y recalcula las normales. Se utiliza cuando desea cambiar la escala de cada polígono o cuando desea ajustar la dirección de las normales para lograr un sombreado plano.

Veamos algunas combinaciones entre operadores SOPs

Construcción de escena usando SOP

 

Fuente  Original

Share this: