callback qui tourne en boucle
Touriste
Inscrit:
16/07/2020 16:02
Post(s): 3
suite à un poste précédent ou je cherchais à faire une texture à partir du GPU, j'ai avancé sur ce sujet, mais je me retrouve avec des comportements que je ne m'explique pas, par manque d’expérience en python / blender tres certainement.
aussi si quelqu'un peut m'expliquer les comportement suivants, ce serait hyper cool.
je rencontre les problèmes suivants:
lorsque je lance mon opérateur, la commande modal (bouton gauche) pour lancer l’opérateur fonctionne, mais la commande 'esc' n'est jamais reçu et ma callback tourne en boucle (pour preuve le print) sans avoir d'autre moyen de l’arrêter que de fermer blender.

merci d'avance pour le coup de main.
import bpy
import gpu
import bgl
import random, base64, io, os
import numpy as np
from mathutils import Matrix
from gpu_extras.presets import draw_circle_2d, draw_texture_2d
#from PIL import Image


def draw2(self, context, offscreen):
    print ("test 2")
   
    IMAGE_NAME = "Generated Image"
    RING_AMOUNT = 10
    WIDTH = 512
    HEIGHT = 512
    
    global buffer
    context = bpy.context
    scene = context.scene    
    view_matrix = scene.camera.matrix_world.inverted()

    projection_matrix = scene.camera.calc_matrix_camera(
        bpy.context.evaluated_depsgraph_get(), x=512, y=512)
        
    offscreen.draw_view3d(
        scene,
        context.view_layer,
        context.space_data,
        context.region,
        view_matrix,
        projection_matrix)

    bgl.glDisable(bgl.GL_DEPTH_TEST)
    draw_texture_2d(offscreen.color_texture, (0, -125), WIDTH, HEIGHT)

    buffer = bgl.Buffer(bgl.GL_BYTE, WIDTH * HEIGHT * 4)
    bgl.glReadBuffer(bgl.GL_BACK)
    bgl.glReadPixels(0, 0, WIDTH, HEIGHT, bgl.GL_RGBA, bgl.GL_UNSIGNED_BYTE, buffer)
    
    #if not IMAGE_NAME in bpy.data.images:
    #    bpy.data.images.new(IMAGE_NAME, WIDTH, HEIGHT)
    image = bpy.data.images[IMAGE_NAME]
    image.scale(WIDTH, HEIGHT)
    image.pixels = [v / 255 for v in buffer]
        # restore opengl defaults

    bgl.glDisable(bgl.GL_BLEND)
             
class render_mouth(bpy.types.Operator):
    """test"""
    bl_idname = "render.render_mouth"
    bl_label = "render mouth"    
                   
    def modal (self,context,event):
        if event.type == 'LEFTMOUSE':
            print ("test start")
            return {'RUNNING_MODAL'}
        
        elif event.type == 'ESC':
            bpy.types.SpaceView3D.draw_handler_remove(self._handle, 'WINDOW')
            print ("test end")
            return {'CANCELLED'}
        
        return {'RUNNING_MODAL'}
    

    def invoke(self, context,event):
        if context.area.type == 'VIEW_3D':
            WIDTH = 512
            HEIGHT = 512
            offscreen = gpu.types.GPUOffScreen(WIDTH, HEIGHT)
            args = (self, context,offscreen)
            self._handle = bpy.types.SpaceView3D.draw_handler_add(draw2, args, 'WINDOW', 'POST_PIXEL')
            #bpy.app.handlers.frame_change_pre.clear()
            print ("test 3")
            return {'RUNNING_MODAL'}     
        

    
   

def register():
    bpy.utils.register_class(render_mouth)

def unregister():
    bpy.utils.unregister_class(render_mouth)
    
if __name__=='__main__':
    register()

Contribution le : 16/07/2020 16:20
Créer un fichier PDF de la contribution Imprimer


Re: callback qui tourne en boucle
Touriste
Inscrit:
16/07/2020 16:02
Post(s): 3
pour info, si je desactive les lignes:
image = bpy.data.images[IMAGE_NAME]
image.scale(WIDTH, HEIGHT)
image.pixels = [v / 255 for v in buffer]


ca regle le probleme. mais pourquoi ??

Contribution le : 16/08/2020 15:04
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant




Enregistrer votre réponse
Compte*
Nom   Mot de passe   Authentification
Message:*



[Recherche avancée]



Sujets récemment répondus
Forums Sujets Réponses Lus Dernières contributions
The Blender Clan 'tchat Avenir du blender clan    [1][2][3]...[40] 397 38684 Hier 17:56:10
Bibi09 
Questions & Réponses [non résolu] IES Lights 4 96 Hier 16:24:14
jcnouveau 
Questions & Réponses Couleur de peau 0 34 Hier 14:31:20
Carne 
Hors Sujet !! Sinoceratops project - Ateliers suivies de A à l'Animation    [1][2][3][4] 34 3985 16/09 20:53:38
meltingman 
Questions & Réponses Combien pour me faire un script qui permet d'ajouter une option driver sur l'icone de l'oeil? 6 330 16/09 14:56:23
lucky 
Questions & Réponses Ouvrir une définition (fichier .txt) de l'objet actif avec un raccourci depuis la vue 3D 0 56 15/09 15:30:03
Melodicpinpon 
[WIP] et travaux terminés [terminé] Utilisation de Blender pour esquisser des objets réels    [1][2] 12 239 14/09 19:18:19
MilWolf 
Graphisme alternatif les addons pour blender : bumarin etc 5 294 14/09 14:37:32
blend74 
The Blender Clan 'tchat ANNONCE IMPORTANTE : LE BLENDER CLAN REOUVRE !! Etat des lieux sur le présent et le futur :)    [1][2] 19 2124 14/09 12:20:39
Riggelm 
The Blender Clan 'tchat Les tutos de Stev ( CG Groovy ) 6 1110 13/09 11:17:43
stev 
Graphisme alternatif faire de la bd avec blender    [1][2][3]...[8] 79 5995 12/09 19:01:54
blend74 
Questions & Réponses Les objets qui voyagent seuls 2 144 12/09 14:20:48
D3DModelisation 
Hors Sujet !! les tutos de Moonboots    [1][2][3]...[21] 202 18541 11/09 20:09:34
moonboots 
Moteur de jeu GameBlender et alternatives [non résolu] Cs (vaisseau)    [1][2][3]...[55] 544 167508 11/09 10:08:20
sbkodama 
Questions & Réponses control sur le grow mask et smooth mask en sculpt 2 163 10/09 23:50:51
maxime 
Questions & Réponses Difficultés de reprise d'un vieux projet 4 273 10/09 12:39:47
GLM 
[WIP] et travaux terminés [WIP] La gabarre '' Le Gros Ventre''    [1][2][3]...[10] 90 15819 08/09 21:11:55
yawdpwal 
Questions & Réponses Comment faire la symétrie d’une multitude d’éléments. 4 307 06/09 14:55:39
jcnouveau 
Questions & Réponses Version portable et configurée sur Mac et Linux 0 166 06/09 13:43:15
Melodicpinpon 
Moteur de jeu GameBlender et alternatives [WIP] DeadSigns FPS Unity - Version alpha disponible + discord    [1][2][3]...[67] 668 147043 06/09 12:44:54
Hook 

Qui est en ligne
138 utilisateur(s) en ligne (dont 70 sur Forums)

Membre(s): 8
Invité(s): 130


TristaD363, GabrielleH, LeroyBraue, MikaylaScu, OrvilleGat, MarianoEly, LucianaCec, Alyssa3182, plus...
Nouveaux membres
RobertoLas 18/9/2021
NatalieMac 18/9/2021
AidanMackr 18/9/2021
FatimaChun 18/9/2021
MozelleMcG 18/9/2021
Valentin27 18/9/2021
EllenDuCro 18/9/2021
GretaKethe 18/9/2021
MichelleOb 18/9/2021
RalphTread 18/9/2021
Dernier Ajout
2020-09-24.jpg

Evènements à venir
Oct 8
Anniversaire du Grand Mechant Fadge
Nov 18
Anniversaire de RichDeg
Dec 29
Anniversaire d'ebrain
plus 248 plus d'élément(s)
 Par Mickaël Guédon [ebrain] © 2003-2021 The Blender Clan - hébergé par TuxFamily - Site déclaré à la CNIL sous le numéro 1155445