Salut tout le monde voila j'aimerai savoir si il y avais moyen de faire un screenshot du viewport ou bien un rendu silencieux du viewport (un peux comme l'option render icon pour les script python afin d'obtenir une image).
J'entend par rendu silencieux un rendu qui n'ouvre pas le visualiseur d'image, ou alors nous somme obligé de l'ouvrir de save en jpg, de supprimer le dernier élément puis de fermer la fenêtre?
En python ça serais mieux mais si ce n'est pas possible alors en C++.
Merci d'avance
SDK Specialist
MAXON Computer GmbH
Là peut-être :
Semi-nudistes Marathoniens et Campagnards
Absent, quand je ne suis pas là.
Merci aux modos pour tout et tous.
Mon but est de le faire en python de façon discrête. Ce qui n'st pas du tôut le cas avec ces deux options.
De plus je veux une vue du viewport (donc mode hardware ou software en mode de rendu).
En tout cas merci d'avoir pris le temps de répondre !
SDK Specialist
MAXON Computer GmbH
Salut gr4ph0s,
Pourquoi ne fais tu pas un rendu en mode "aperçu logiciel" de ta frame tout simplement ? Il est evident qu'avec cette proposition que ta fenêtre de rendu va s'ouvrir et tu ne seras donc plus en mode silencieux du coup
Yaya °) Je fais souvent cette manip de mon côté.
Les détails font la perfection, et la perfection n'est pas un détail.http://yayaprodtm.cgsociety.org/
LdV.
Oui c'est ce que je comptais faire si il n'y à pas de manière plus propre.
Mais bon me suis dis que y'a peux être un moyen en programmation pour faire un rendu sans afficher de picture viewer
Ou tout simplement prendre un screen sans installer 50 librairies ^^
Donc autant demander si une manière plus propre existe :p
SDK Specialist
MAXON Computer GmbH
Ah d'accord, un rendu sans rendu... ...du coup aucune idée.
Ce serait pour quoi faire en fait ?
Semi-nudistes Marathoniens et Campagnards
Absent, quand je ne suis pas là.
Merci aux modos pour tout et tous.
Il peut pas dire pour quoi c'est faire. Il veut rester en mode silencieux...
Ah oui c'est vrai ça
Les détails font la perfection, et la perfection n'est pas un détail.http://yayaprodtm.cgsociety.org/
LdV.
Haha c'est pour mon plugin de pose2pose comme celui-ci
https://www.creativecrash.com/system...jpg?1251126149
C'est l'un des dernier truc tout con qu'il me reste à faire. Mon but étant d'avoir un bouton pour capturer une image et la save en jpg pour ensuite pouvoir l'utiliser dans mon interface !
Tout con mais chiant à faire pour avoir un truc propre...
SDK Specialist
MAXON Computer GmbH
D'accord, c'est classe ton truc, mais shuuuuuuuteeeeeeuuuuuu.
Semi-nudistes Marathoniens et Campagnards
Absent, quand je ne suis pas là.
Merci aux modos pour tout et tous.
Hello.
Je suis désolé je ne sais pas du tout comment, mais il doit y avoir moyen de le faire je suppute, étant donné que les options d'enregistrement de vignettes de fichier le permettent.
(pomme D/Info/Preview Command = Copy from Editor)
Peut être en cherchant cette commande "Copy from Editor" ?
2x6coreXéon2.66(24T);64Gram; GTX 1080; OSX10.13.6 ////
Mac Studio 128 Ram ; OSX 12.3.1 ; papiercrayoncerveau;S22Studio;Redshift;Zbrush2022; CS2022
///SHTL 2011 DEMO HERE : http://demo.shtl.org/ /// NEW! 2014 WIP
Voila merci mon but et d'avoir ça dans mon plugin.
Bon je pourrais utiliser le bouton et l'image qu'il en découle cependant ça modifie l'image du fichier donc c'est pas tip top(même si ça reste une solution car au final je suis sur que personne use cette option(qui est pourtant bien pratique ^^)
Je vais regarder ça en tout cas merci je ne connaissais pas ! Et si quelqu'un à une solution en python / c++ ça serais cool
Dernière modification par gr4ph0s ; 06/09/2016 à 14h12.
SDK Specialist
MAXON Computer GmbH
Salut gr4ph0s,
Tu peux faire un rendu de la scène dans un BaseBitmap (ou MultipassBitmap) grâce à la fonction RenderDocument (tu as un exemple dans le SDK).
Ce qui est bien en plus c'est que tu peux passer un RenderData que tu créer sans même qu'il ne soit actif ou inséré dans le doc.
Voilà un exemple qui enregistre un preview hardware sur ton bureau :
Code PHP:
import os
import c4d
def generate_preview(doc, xres=640, yres=480):
# Configure RenderData
rd = c4d.documents.RenderData()
rd[c4d.RDATA_XRES] = xres
rd[c4d.RDATA_YRES] = yres
rd[c4d.RDATA_RENDERENGINE] = c4d.RDATA_RENDERENGINE_PREVIEWHARDWARE
# Render to bitmap
bmp = c4d.bitmaps.BaseBitmap()
if bmp.Init(xres, yres) != c4d.IMAGERESULT_OK:
bmp = None
else:
res = c4d.documents.RenderDocument(doc, rd.GetData(), bmp, c4d.RENDERFLAGS_EXTERNAL)
if res != c4d.RENDERRESULT_OK:
bmp = None
return bmp
def save_bitmap(name, bmp, path, img_format=(c4d.FILTER_JPG, 'jpg')):
if bmp:
filter_id, format_ext = img_format
return bmp.Save(os.path.join(path, name + '.' + format_ext), filter_id)
return False
def main():
render_preview = generate_preview(doc)
if render_preview:
name, _ = os.path.splitext(doc.GetDocumentName())
desktop_path = c4d.storage.GeGetC4DPath(c4d.C4D_PATH_DESKTOP)
if save_bitmap(name, render_preview, desktop_path):
print "Preview saved!"
c4d.EventAdd(c4d.EVENT_0)
if __name__ == '__main__':
main()
Merci énormément c'est exactement ce dont j'avais besoin. J'étais persuadé que RenderDocument ça ouvrais le picture viewer du coup j'avais même pas testé
En tout cas merci !
SDK Specialist
MAXON Computer GmbH
Tu peux aussi faire un rendu dans le Picture Viewer avec cette fonction, y'a les flags prévus pour (RENDERFLAGS_CREATE_PICTUREVIEWER, RENDERFLAGS_OPEN_PICTUREVIEWER).
Si ça t'intéresse tu as un exemple d'utilisation (sans picture viewer puisque sans GUI) en C++ dans cinema4dsdk>source>other>commandlinerender.cpp
C'est en gros exactement le code qui était utilisé pour le rendu en ligne de commande en interne dans C4D il y a quelques versions (en tout cas avant la R17).
C'est le même principe, RenderDocument rend le document dans un bitmap selon les paramètres d'un BaseContainer extrait d'un RenderData (tu as juste quelques param en plus en cpp dont un callback pour la progression du rendu).
Merci bon bha ça fonctionne niquel ! Y'a juste a désactiver certain filtre dans le BaseView mais ça commence à ressembler à quelque chose.
Je pense que je vais rajouter un petit texte car c'est mieux d'avoir un nom quand même.
En tout cas merci allez j'essaye d'avoir une première version utilisable (mais pas bug free :p) d'ici la fin de la semaine !
SDK Specialist
MAXON Computer GmbH