XSIforum.com

..y ahora de Softimage a Yafaray; YafXSI.

0 Usuarios y 1 Visitante están viendo este tema.

SUBFRAME

Re: ..y ahora de Softimage a Yafaray; YafXSI.
« Respuesta #20 en: 03 Junio 2011, 19:58:13 »
A ver si tengo un hueco y lo pruebo.
Un abrazo

Re:..y ahora de Softimage a Yafaray; YafXSI.
« Respuesta #21 en: 20 Diciembre 2011, 01:23:24 »
Tengo el placer de anunciarles, que ya esta disponible, la version beta 0.2 de YafaRay for Autodesk Softimage.
Con bastantes mejoras, entre ellas..
- 'Preview Materials' para un control mas preciso del material, antes de lanzar el render(wip).
-Para visualizar el material, basta con cambiarle el nombre a 'Preview' y hacer clip en el boton 'Preview materials'
- Opcion para exportar el material en formato .xml de YafaRay.
- Arreglado el error al cargar o crear nuevas escenas.
- Añadida opcion en UI de cargar archivos .xml de YafaRay para renderizarlos.
Nuevos 'nodos' añadidos:
- yaf_light_mat; para crear objetos emisores (meshlight) con solo aplicar este material al objeto.
- yaf_IES_light; para crear luces con ficheros tipo IES.
- Este nodo, es aplicable solo a luces tipo 'spot' ( de momento..).
- yaf_bgportal_light; para crear objetos tipo PortalLight.
- yaf_image; nodo para texturas tipo 'image file'.
- Use este nodo, para crear texturas basadas en imagenes, el nodo 'image' de Softimage, no trabaja correctamente con YafaRay.
- yaf_angular_cam; añade el tipo de camara 'angular'
Y muchas mejoras más..

Pueden descargar YafaRay for Autodesk Softimage de la pagina de YafaRay; http://www.yafaray.org/download1
O de la pagina Github, donde tambien encontraran los ficheros fuente del exportador; http://github.com/povmaniaco/YafaRayforXSI

Tambien pueden seguir la evolucion del exportador, el este thread del foro de YafaRay..
http://www.yafaray.org/community/for...hp?f=16&t=3460

Atencion!!
Para usar el exportador con versiones 2010, 2011 y 2012 de Softimage, deben sustituir las librerias Qt4 ( e.g. .. /Softimage/2010/Application/bin)
Qt4gui.dll, Qt4core.dll, Qt4xml.dll y Qt4Opengl.dll, (version 4.5.1) por las del exportador (version 4.7.3).

P D: El exportador funciona con la version gratuita Autodesk Softimage Mod Tool 7.5
Un saludo y felices renders...

Re:..y ahora de Softimage a Yafaray; YafXSI.
« Respuesta #22 en: 29 Diciembre 2011, 08:26:53 »
Bueno.. Aprovechando estos dias estoy de vacaciones...( y que acabo de descubrir lo util que es Dropbox..:), os dejo unas imagenes con los ultimos avances de YafaRay for Softimage.

Blend material



YafaRay DoF Camera ( Lens shader)



Primeros pasos para exportar volumetricas


Cualquiera diria, que estoy de vacaciones..:)
Saludos... y buenas fiestas!

Re:..y ahora de Softimage a Yafaray; YafXSI.
« Respuesta #23 en: 15 Febrero 2012, 00:19:47 »
Pare celebrar que hoy, hace dos años, que me regalaron el primer libro de C++ voy a compartir.. algo de Python. :)
Hay poca informacion sobre el API de YafaRay. Fue una de las cosas que más encontre a faltar, cuando empece a programar el exportador.
Los desarrolladores, ( los pocos que hay) suelen estar más ocupados en crear, que en documentar y eso hace, que a pesar de ser 'open-source', no hayan muchos datos sobre el codigo.
Solo una pequeña 'interface-demo' en C++, que se distribuia con el 'source', en la version 0.1.1 y, que se ha dejado de hacer, en la version 0.1.2 beta.
Lo que  comparto aqui, es la version para Python, de esa 'interface-demo'.
Está en una fase muuy Alpha ( la he hecho en dos tardes..) y le faltan muchas cosas, pero como base, es suficiente.
Si alguien esta interesado, o la encuentra util,  estare por aqui :)
En proximos dias, quiero publicar tambien, la version  para C++...
Saludos..
Código: [Seleccionar]
# ##### BEGIN GPL LICENSE BLOCK #####
#
#  This program is free software; you can redistribute it and/or
#  modify it under the terms of the GNU General Public License
#  as published by the Free Software Foundation; either version 2
#  of the License, or (at your option) any later version.
#
#  This program is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#  GNU General Public License for more details.
#
#  You should have received a copy of the GNU General Public License
#  along with this program; if not, write to the Free Software Foundation,
#  Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# ##### END GPL LICENSE BLOCK #####

# <pep8 compliant>

import sys
import os
import ctypes

import math
from math import degrees, pi, sin, cos
#
PLUGIN_PATH ="h:/minipython/bin/plugins"
BIN_PATH="h:/minipython/bin"
sys.path.append(BIN_PATH)

# Preload needed libraries
# if used the Megasoft78 compilations, Qt interface its not supported
povman = True
mega = False
if sys.platform == 'win32':
    if povman:
        dllArray = ['zlib1', 'yafaraycore', 'yafarayplugin', 'yafarayqt']
    else:
        dllArray = ['zlib1', 'libxml2-2', 'libgcc_s_sjlj-1', 'Half', 'Iex', 'IlmThread', 'IlmImf', \
    'libjpeg-8', 'libpng14', 'libtiff-3', 'libfreetype-6', 'libyafaraycore', 'libyafarayplugin']
elif sys.platform == 'darwin':
    dllArray = ['libyafaraycore.dylib', 'libyafarayplugin.dylib']
else:
    dllArray = ['libyafaraycore.so', 'libyafarayplugin.so']

for dll in dllArray:
    try:
        ctypes.cdll.LoadLibrary(os.path.join(BIN_PATH, dll))
    except Exception as e:
        print("ERROR: Failed to load library " + dll + ", " + repr(e))

import yafrayinterface

## load interface and plugins
yi = yafrayinterface.yafrayInterface_t()
yi.loadPlugins(PLUGIN_PATH)

##------------
yi.startScene()

##--- texture --------------------
yi.paramsClearAll()
texName ="rgb_cube1"
yi.paramsSetString("type", "rgb_cube")
yi.createTexture(texName)
   
##--- material -----------------------------
yi.paramsClearAll()
yi.paramsSetString("type", "shinydiffusemat")
   
yi.paramsPushList()
yi.paramsSetString("type", "texture_mapper")
yi.paramsSetString("name", "rgbcube_mapper")
yi.paramsSetString("texco", "uv")
yi.paramsSetString("texture", texName )
yi.paramsEndList();
   
yi.paramsSetString("diffuse_shader", "rgbcube_mapper")

mat = yi.createMaterial("myMat")

##----- lights ------------------------------
yi.paramsClearAll()
yi.paramsSetString("type", "directional")
yi.paramsSetPoint("direction", -0.3, -0.3, 0.8 )
yi.paramsSetColor("color", 1.0, 1.0, 0.9 )
yi.paramsSetFloat("power", 1.0 )
yi.createLight("myDirectional")

#
yi.paramsClearAll()
yi.paramsSetColor("color", 1, 1, 1, 1)
yi.paramsSetPoint("from", 11, 3, 8)
yi.paramsSetFloat("power", 160)
yi.paramsSetString("type", "pointlight")
yi.createLight("LAMP1")
   
##-------------------------------------
def makeSphere( nu, nv, x, y, z, rad, mat):

        # get next free id from interface

        ID = yi.getNextFreeID()

        yi.startGeometry()

        if not yi.startTriMesh(ID, 2 + (nu - 1) * nv, 2 * (nu - 1) * nv, False, False):
            yi.printError("Couldn't start trimesh!")

        yi.addVertex(x, y, z + rad)
        yi.addVertex(x, y, z - rad)
        for v in range(0, nv):
            t = v / float(nv)
            sin_v = sin(2.0 * pi * t)
            cos_v = cos(2.0 * pi * t)
            for u in range(1, nu):
                s = u / float(nu)
                sin_u = sin(pi * s)
                cos_u = cos(pi * s)
                yi.addVertex(x + cos_v * sin_u * rad, y + sin_v * sin_u * rad, z + cos_u * rad)

        for v in range(0, nv):
            yi.addTriangle(0, 2 + v * (nu - 1), 2 + ((v + 1) % nv) * (nu - 1), mat)
            yi.addTriangle(1, ((v + 1) % nv) * (nu - 1) + nu, v * (nu - 1) + nu, mat)
            for u in range(0, nu - 2):
                yi.addTriangle(2 + v * (nu - 1) + u, 2 + v * (nu - 1) + u + 1, 2 + ((v + 1) % nv) * (nu - 1) + u, mat)
                yi.addTriangle(2 + v * (nu - 1) + u + 1, 2 + ((v + 1) % nv) * (nu - 1) + u + 1, 2 + ((v + 1) % nv) * (nu - 1) + u, mat)

        yi.endTriMesh()
        yi.endGeometry()

        return ID
##----- create mesh --------------------------

nu=24
nv = 48
x=0
y=0
z=0
rad= .5   
ID = makeSphere(nu, nv, x, y, z, rad, mat)

       
##--- create cam ---------------------------
yi.paramsClearAll()
yi.paramsSetString("type", "perspective")
yi.paramsSetPoint("from", -1.5,-2.0,1.7 )
yi.paramsSetPoint("to", 0,0,0.2 )
yi.paramsSetPoint("up", -1.5,-2.0,2.7 )
yi.paramsSetInt("resx", 640)
yi.paramsSetInt("resy", 480)
yi.paramsSetFloat("focal", 1.4)
yi.createCamera("camera")
   
##---- background --------------------------
yi.paramsClearAll()
yi.paramsSetString("type", "constant")
yi.paramsSetColor("color", 0.4, 0.5, 0.9 )
yi.createBackground("world_background")

##--- integrator ---------------------------
yi.paramsClearAll()
yi.paramsSetString("type", "directlighting")
yi.createIntegrator("myDL")

##--- volume integrator --------------------
yi.paramsClearAll()
yi.paramsSetString("type", "none")
yi.createIntegrator("volintegr")

##----- output -----------------------------
yi.paramsClearAll()
file_type = 'png'
yi.paramsSetString("type", file_type)
yi.paramsSetBool("alpha_channel", False)
yi.paramsSetBool("z_channel", False)
yi.paramsSetInt("width", 640)
yi.paramsSetInt("height", 480)
ih = yi.createImageHandler("outFile")
output = yafrayinterface.imageOutput_t(ih, 'h:/minipython/test.png', 0, 0)

##---- camera ---------------------------------------
yi.paramsClearAll()
yi.paramsSetString("camera_name", "camera")
yi.paramsSetString("integrator_name", "myDL")
yi.paramsSetString("volintegrator_name", "volintegr")
   
yi.paramsSetInt("AA_minsamples", 4)
yi.paramsSetFloat("AA_pixelwidth", 1.5)
yi.paramsSetString("filter_type", "mitchell")
yi.paramsSetInt("width", 640)
yi.paramsSetInt("height", 480)
yi.paramsSetString("background_name", "world_background")

##---- QT interface ------------------------------------------
use_gui=True
if mega:
    use_gui = False
#
if use_gui:
    import yafqt
    yafqt.initGui()
    guiSettings = yafqt.Settings()
    guiSettings.autoSave = False
    guiSettings.closeAfterFinish = False
    guiSettings.mem = None
    guiSettings.fileName = 'test.png'
    guiSettings.autoSaveAlpha = False
    #
    yafqt.createRenderWidget(yi, 640, 480, 0, 0, guiSettings)
else:
    yi.render(output)
 
yi.clearAll()
del yi


Ownage

  • ***
  • 1494
  • cause we are living in a 3d world
Re:..y ahora de Softimage a Yafaray; YafXSI.
« Respuesta #24 en: 15 Febrero 2012, 18:07:37 »
muchas gracias pov :D no entiendo de que va todo esto pero seguro que es bueno para mas de uno :DD

Re:..y ahora de Softimage a Yafaray; YafXSI.
« Respuesta #25 en: 15 Febrero 2012, 20:27:20 »
Muy interesante.

Re:..y ahora de Softimage a Yafaray; YafXSI.
« Respuesta #26 en: 16 Febrero 2012, 10:37:18 »
muchas gracias pov :D no entiendo de que va todo esto pero seguro que es bueno para mas de uno :DD
Basicamente, el Api es la puerta de enlace de una aplicacion..
He actualizado el codigo, y he subido un pequeño video a Vimeo.
( sin sonido :) Si no hablo, al proximo intentare ponerle musica, al menos)



Muy interesante.

Gracias!!