Ken Pimentel fala sobre a reestruturação do 3ds max

Por: Abilio  

Em: 05/12/2009 10:37

Marco, obrigado pela orientação, e MUITO BOM seus trabalhos!!!!
3d Max / Mental ray
A tecnologia evolui e a gente tem que acompanhar, haja dinheiro. Mas é melhor do que se não tivesse estes programas. Eu me amarrei no max.
Obrigado, ainda tenho muito que aprender, mas vamos caminhando. Bom natal a todos
E quem começou estudar agora? É mais negócio esperar as mudanças para pegar firme nos estudos?
Não, começa com os fundamentos do max, que não mudaram nada, depois vc se aprimora... Muitas destas novidades nem vão ser úteis no início.
Segundo a nota as modificações serão suaves e ao longo de várias versões para não afetar os treinamentos.
"Fla3DMadness" disse: Eu acho que não tem briga nenhuma, até acho que temos uma boa troca de informação. Inclusive se ler a minha mensagem, vai ver que eu não falei que o mray não faz render volumetrico e nem que ele não é usado, mas é real que os raytracers não são os mais rápidos para isso, e colocar imagens do mray com o BA não muda esse fato. Muito do que saiu no final render 3 foi desenvolvido para o filme 2012, o mr é o mais conhecido na criação de shaders, mas isso também é possível nos outros renders via SDK. Eu não muito a fundo o que é criado para o FR, mas sei de bastante coisa desenvolvido para o vray a partir do SDK, por isso que eu não defendo render nenhum, todos são capazes de fazer bons efeitos, e o que chega pra gente não é nem 10% das ferramentas proprietárias desenvolvidas para os filmes.
As imagens do BA são relevantes sim, elas retrucam o que tu falou sobre o mental ray ser lento na renderização de efeitos de volume. Se não constasse a máquina usada e o tempo de render eu concordaria, mas se a imagem mostra que renderizou um efeito volumétrico complexo e realista em 2.5 minutos usando uma única máquina quadcore comum atualmente, não pode dizer que o render foi demorado. O farto uso destes shaders em cinema tmb retruca o que tu disse, não usariam se conseguissem o mesmo resultado mais rápido em outro render. Mas sobre o SDK eu fiquei abismado de ouvir isso de uma pessoa experiente como tu demostra ser. Tinha uma pessoa que frequentava o fórum antigamente e era fanático pelo vray, ele falava a mesma coisa que tu disse, mas ele não parecia ter a experiência que tu tem. Pergunta para alguém com alguma experiência de programação, ele vai saber que é completamente diferente SDK e shader language. Se o SDK fosse igual um shader language os criadores de shaders no cinema não apareceriam nos créditos como shader writers, apareceriam como programmers. Para criar qualquer recurso simples com SDK a pessoa tem que ser programador e desenvolver o recurso em C++. O SDK não faz o que o shader language faz, mas o shader language faz o que o SDK faz. No mental ray e no renderman a pessoa abre o notepad e escreve um novo material, uma nova luz, um novo shader de volume usando os códigos da shader language sem compilar DLL e sem usar C++. Salva o arquivo com a extensão MI, bota na pasta do mental ray, abre o max e o novo recurso está disponível. Não compara com a dificuldade de criar um recurso com o SDK programando em C++, compilando DLLs e testando a integração com o soft "hospedeiro". Mas se a pessoa quiser criar um novo recurso que não foi previsto pelo render, com o shader language ela pode escrever usando linguagem de programação, compilar as DLL e botar o novo recurso no programa como seria feito com o SDK. Nenhum render tem o poder de shader language do mental ray e do renderman, só os dois tem esse recurso e pode confundir os mais novos se falar que SDK é a mesma coisa que shader language. Espero ter ajudado e não quero criar discussões sobre o tema, apenas esclarecer sobre SDK e shader language.
UERJ
Eu entendo que shader language é muito mais aberto do que programar via SDK, apenas estava comentado que não da pra dizer que o vray é fechado, mas quem falou que no mental ray não tem que compilar o shader? Inclusive esse é um dos empecilhos de usar shader do mental mill no mental ray, os shaders tem que ser compilados de acordo com a plataforma, windows 32, windows 64, linux 32 e linux 64 se for o caso, ou de onde vc acha que surge a DLL da pasta shaders do mental ray? Agora sinceramente, nem eu nem você e aposto que quase ninguém aqui sabe o que realmente acontece na produção de filmes no exterior, não acha? Então eu não vou afirmar que esse ou aquele é melhor para filme, o que eu tento colocar aqui são as discussões que eu acompanho no cgtalk de quem realmente trabalha em filme, e ja acompanhei uma discussão fantástica entre renderman e mental ray com a participação do master zap, vc acha que podemos dar pitaco em uma discussão assim? Então o que eu to falando foi o que foi comentado lá, o renderman é mais rápido para renderizar efeitos volumetricos e o mental ray espanca ele quando precisa de raytrace, apesar de que o 3delight ja esta muito rapido para isso. Ah, logicamente eu não tenho embasamento pratico para afirmar isso, essa é conclusão que se pode chegar lendo esse tipo de discussão. No fim das contas os filmes são feitos com muita ferramenta proprietária, junto com o que puder ajudar, por isso que no memso filme é gigante a lista de ferramentas usadas, aí vc pode incluir tanto maya como max, mental ray e renderman (seja o da pixar, seja o 3delight, seja o mantra)... enfim, pra mim o importante é que tudo isso esta muito longe do que fazemos no dia a dia. Ou vc ja escreveu algum shader pro mental ray? Ja usou algum renderman? Ja mexeu no houdini? Eu não... por isso não vou afirmar nada assim. Além do mais eu não sou programador, então pra mim tanto escrever shaders como programar em c++ via SDK esta fora do meu alcance, eu ja sofro pra tentar escrever uns scripts basicos... :-P Edit: Como eu não sou programador, fui conversar com quem entende a resposta é que apenas o renderman lê o código "on-the-fly" sem precisar compilar, no mental ray se vc quiser criar um shader NOVO vc precisa cria-lo em C e compilar para gerar a DLL. O que vc está falando é alterar o arquivo de declaração de um shader (o arquivo MI), ou seja, vc esta alterando a forma como se acessa um shader ou cria um phenomenon, que é um grupo de shaders como o material arch&design. Criar um arquivo .mi não é criar um shader, o shader é o arquivo .dll, e isso não é nada fácil de criar, e não sou eu quem estou falando pq nunca meti a mão nisso, mas algumas pessoas que ja estudaram sobre isso.
Opa Fla3DMadness, nestes termos eu concordo com quase tudo. É diferente falar que o renderman é mais rápido do que falar que o mental ray não é bom para volume. Eu já vi um maluco configurando o renderman no maya e para falar a verdade eu penso que é melhor esperar render, pq é como configurar iluminação fakeosity no scanline mas a luz está nos materiais. Penso que é por isso que precisam de tantos profissionais para fazer um filme, se tivessem muitas máquinas em rede para aguentar o render poderiam fazer com menos gente. O cara leva o dia inteiro para iluminar uma cena, mas depois voa no render! Eu apenas não concordo com o que tu disse sobre precisar compilar DLL para criar um shader, a não ser que vc não considere shader como o mental ray considera. Qualquer coisa que interfira no render é um shader, então qualquer instrução para o render é um shader no mental ray. Existem shaders que precisam de DLL, são os shaders que adicionam novos recursos no mental ray que não foram previstos no core. Neste caso tem que programar em C, compilar a DLL e criar a declaração do shader no MI para o mental ray acessar. Mas tem muitos shaders de mental ray pela internet que não precisam da DLL pq usam recursos previstos no core do mental ray. O Photostudio é um deles, conhece? Tem vários shaders do Thorsten Hartmann que não precisam de DLL. http://www.infinity-vision.de/semimr/semimr.html Aqui na 3d1 msm tem um shader de material blinn com AO que não existia no mental ray e o André escreveu. http://www.tresd1.com.br/texturas.php?t=13941&busca_no_topico=3d1 É igual fazer um rig, tu tem várias ferramentas que vai unindo e ligando até criar o controlador do jeito que precisa. Nos shaders sem DLL é igual, o mental ray tem vários recursos que tu vai interligando e cria um novo material, uma nova luz, um efeito de volume e outras coisas que por padrão não tinham. E faz isso abrindo o notepad, digitando os códigos da shader language e salvando em MI. É uma praticidade que só o mental ray e o renderman possuem. Mas se quiser criar um recurso que o mental ray não tem, só neste caso que precisa programar em C e compilar a DLL. Neste caso é igual desenvolver com o SDK, mas é bem mais fácil e amigável.
UERJ
É, o renderman parece que é outra abordagem bem diferente do que estamos acostumados. E vale lembrar pra quem estiver acompanhando o tópico que renderman é um padrão de render tipo REYES e existem varios renderizadores que seguem essa especificação, o mais famoso é o Pixar Renderman, mas ja ouvi falar muito bem do 3delight que parece que é mais fácil de usar que o da pixar. Além disso, pra quem usa o houdini o render dele é o mantra que também é um renderman. Mas então Robson, talvez nós estejamos usando termos diferentes, o shader é a DLL sim, o photostudio por exemplo é o que eu falei, uma interface que acessa shaders prontos, ele não precisa de DLL pq elas ja fazem parte do max, ou seja, o shader ja esta lá, por isso que pra mim o arquivo MI não é um shader em sí, mas entendo o que vc quer dizer, só não acho que estejam criando algo necessariamente novo dessa forma, apenas criando uma nova forma de acessar algo que ja existe. Inclusive o mental ray usa o termo "phenomenon" para o material do andré que vc citou, como vc ve na primeira linha do código que ele criou. Como diz o manual do mental ray, phenomenon é um conjunto de shaders interligados, no caso do blinn AO ele acessa os shaders mib_amb_occlusion, mib_illum_blinn, e Metal, isso tudo ta la no arquivo MI que eu baixei pra dar uma olhada. Então técnicamente falando, criar um material novo, um phenomenon, não é o mesmo que criar um shader, pelo menos esse é o termo que está na documentação do mental ray sobre a definição de shader: [i:3508a7b2c9]"Shaders are procedural elements that are implemented in C or C++. They are typically, but not necessarily, precompiled and stored in shared libraries. They are linked by mental ray at runtime and perform a variety of functions, such as determining the surface characteristics of an object. The term "shader" originally referred to "surface shading" (color and illumination computation) but has expanded and now refers to any custom function, regardless of its use. All shading functions linked with a code or link statement, and all shading functions built into mental ray, must be declared. When called, shaders accept a pointer to an arbitrary parameter structure as their third argument, and mental ray must know the structure declaration in order to put together the parameter block according to C/C++ structure layout conventions. Usually, declarations are included from a separate file using the $include statement. For a detailed description of shader declarations, see the chapter on writing shaders. A declaration is a top-level statement that informs mental ray about the shader name (which is identical to the C/C++ function name), the return type, and the types and names of all the parameters. Certain options can also be specified."[/i:3508a7b2c9] Então acho que é só uma questão de termos mesmo, concordo com você que essa facilidade de pegar shaders prontos e criar novos materiais só com o notepad é realmente fantástica, como falei não sou da área de programação mas ja mexi muito em arquivos .mi mas nunca achei que estava criando shaders novos. Shaders novos para mim é como está no manual no capitulo que fala sobre User-Defined Shaders: "[i:3508a7b2c9]In addition to standard shaders, user-defined shaders written in standard C or C++ can be precompiled and linked at runtime, or can be both compiled and linked at runtime. User-defined shaders can be used in place of any standard shader, redefining materials, textures, lights, environments, volumes, displacements etc. mental ray's shader interface uses C conventions, C++ shaders should use extern "C" constructs to access it and take care to avoid typical C++ performance pitfalls such as new and virtual class members. Even a small overhead becomes significant if incurred millions of times per frame.[/i:3508a7b2c9]" Pra contribuir com o tópico, abaixo tem o link para o SSS Fast Skin+ que o master zap criou, uma combinação dos shaders "fast SSS skin" e mia_material (Arch&Design" no max), ele chama de material, ou mais precisamente "material phenomenon", se nem ele chama isso de shader porque nós deveríamos? ;) http://mentalraytips.blogspot.com/2008/04/beauty-isnt-only-skin-deep-combining.html Agora na aplicação pratica, eu concordo com você que o mental ray é bem mais aberto para grandes produções, começando pelo arquivo de render dele .mi que é aberto e pode ser alterado somente pelo notepad, isso facilita muito a integração dele em grandes pipelines, acredito que outros renders sigam esse caminho se quiserem abrir as portas em grandes estudios sem precisar passar pelo SDK. Desculpem o post gigante, mas acho que a discussão está bem interessante e construtiva.

Faça o login para poder comentar

Informações da Comunidade

Total de mensagens publicadas pelos membros da comunidade: 717360.

Total de membros registrados: 143151

Últimos membros registrados: EDILSON_Lucas, thiagodsf, Fernando Ferreira Ventura, GeorgeKing, adasdasdasd, avelinoramos, VigorPeakKapseln565, Robohnson.

Usuário(s) on-line na última hora: 514

Legenda: Administrador, Especial, Moderador, Parceiro .

3D1 © Três D1 © 1999-2026. Todos direitos reservados.