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
Questions & Réponses Adaptation terrain 0 36 Hier 21:01:05
Vinke013 
Graphisme alternatif faire de la bd avec blender    [1][2][3]...[10] 93 6545 Hier 19:56:45
blend74 
Questions & Réponses Blender et Mac, faisons le point 5 94 Hier 19:17:10
ludo66 
Questions & Réponses image as plane: éviter les ombres 4 80 Hier 17:01:34
blend74 
Graphisme alternatif Dessiner à la tablette avec Krita : demande conseils    [1][2] 17 27689 Hier 16:49:32
blend74 
Hors Sujet !! un visage avec Blender tutoriel facile débutant 1 281 Hier 16:44:38
blend74 
Hors Sujet !! Sappling gen generateur d'arbres - tuto blender 6 1085 Hier 16:43:30
blend74 
Moteur de jeu GameBlender et alternatives [WIP] Godot Engine - Projet Arsenal 8 200 Hier 12:30:30
Redstar 
Questions & Réponses Blender et Mac, faisons le point 0 42 Hier 09:11:50
ludo66 
Questions & Réponses Aplanir plusieurs surfaces à la fois 3 49 Hier 02:45:51
Vinke013 
Questions & Réponses Texture importée déformée... HELP 0 43 23/09 13:47:10
Jreno 
Questions & Réponses message d'erreur help 0 38 23/09 12:45:05
blend74 
Graphisme alternatif les addons pour blender : bumarin etc    [1][2] 13 543 23/09 11:13:07
blend74 
[WIP] et travaux terminés Anatomie open source dans Blender    [1][2] 10 1425 23/09 00:26:54
meltingman 
Questions & Réponses Smoothing groups ou équivalent ? (3dsMax to Blender)    [1][2] 12 317 22/09 20:12:19
lucky 
Questions & Réponses [non résolu] Os et FBX 2 78 22/09 14:50:56
zeromeetsinfinity 
Questions & Réponses [non résolu] Problème Aspect du verre (Glass BSDF) 1 105 20/09 19:50:51
Miaunik 
The Blender Clan 'tchat Avenir du blender clan    [1][2][3]...[40] 397 39681 17/09 17:56:10
Bibi09 
Questions & Réponses [non résolu] IES Lights 4 209 17/09 16:24:14
jcnouveau 
Questions & Réponses Couleur de peau 0 127 17/09 14:31:20
Carne 

Qui est en ligne
89 utilisateur(s) en ligne (dont 27 sur Forums)

Membre(s): 13
Invité(s): 76


AnthonyWil, RobUpfield, LavadaKale, WesleyMccu, PerryMahaf, MonteBurwe, RomanNanne, NelsonShan, FelipeLoe, BrandonBra, PenneyDumm, CarmaHambl, KristaOdel, plus...
Nouveaux membres
HugoNewcom 25/9/2021
NicholeTha 25/9/2021
Lynette55P 25/9/2021
VincentRkk 25/9/2021
PabloParen 25/9/2021
BerndXsn89 25/9/2021
JulietaYen 25/9/2021
ClairLechu 25/9/2021
ZCYFerne7 25/9/2021
HeidiQ6333 25/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