maybites / TextureSharing

Spout for Blender
117 stars 12 forks source link

Confusion: the last major release has only source code #29

Closed newemka closed 6 months ago

newemka commented 6 months ago

Hello, usually your releases have 3 assets, one zip file of the add-on and two source files. Is this an oversight?

maybites commented 6 months ago

no, its intentional. With the recent renaming of the repo it is actually possible to download the addon just in the standard way. https://github.com/maybites/blender-texture-sharing/archive/refs/heads/master.zip

If this causes a problem, pease let me know.

newemka commented 6 months ago

No luck for me. I'm on Windows 10, Blender 4.1

When I press the button to install the SpoutGL, I get this message: Cannot install package : SpoutGL

For NDI, when I try to disable and enable the add-on, I get this error:

Traceback (most recent call last): File "C:\Program Files\Blender Foundation\Blender 4.1\4.1\scripts\modules\addon_utils.py", line 444, in enable mod.register() File "C:\Users\newem\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\blender-texture-sharing-master__init__.py", line 36, in register pip_importer.register() File "C:\Users\newem\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\blender-texture-sharing-master\pip_importer.py", line 346, in register register_class(cls) ValueError: register_class(...): already registered as a subclass 'Pip_Update_package'

After restarting Blender I can select Streaming Type NDI but once Share texture is activated I don't see it in my other applications. I've tested with NDI studio monitor and Tooll3

maybites commented 6 months ago
  1. Can you provide the full log in the windows console for the SpoutGL error?
  2. I have seen this error, too. I don't know yet what causes it. I will look at it comming monday. I assume you test with v6.0.3?

the whole thing is tricky, since I have the to make the addon running even if the core libraries aren't installed. it requires some architectural gymnastics that just got more complicated by implementing NDI.

Any steps and detailed errormessages you can reliably reproduce would be helpfull.

newemka commented 6 months ago

Sure, here are the messages I can gather in Blender Console windows 1. SpoutGL install

Modules Installed (blender-texture-sharing-master) from 'C:\Users\\Downloads\blender-texture-sharing.zip' into 'C:\Users\\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons' pip 24.0 from C:\Users*\AppData\Roaming\Python\Python311\site-packages\pip (python 3.11) Defaulting to user installation because normal site-packages is not writeable Requirement already satisfied: pip in c:\users*\appdata\roaming\python\python311\site-packages (24.0) Defaulting to user installation because normal site-packages is not writeable Collecting SpoutGL==0.0.4 Using cached SpoutGL-0.0.4.tar.gz (7.2 kB) Installing build dependencies ... done Getting requirements to build wheel ... done Preparing metadata (pyproject.toml) ... done Building wheels for collected packages: SpoutGL Building wheel for SpoutGL (pyproject.toml) ... error error: subprocess-exited-with-error

× Building wheel for SpoutGL (pyproject.toml) did not run successfully. │ exit code: 1 ╰─> [3 lines of output] running bdist_wheel running build error: [Errno 2] No such file or directory: 'vendor/SpoutGL/Binaries\x64\Spout.dll' [end of output]

note: This error originates from a subprocess, and is likely not a problem with pip. ERROR: Failed building wheel for SpoutGL Failed to build SpoutGL ERROR: Could not build wheels for SpoutGL, which is required to install pyproject.toml-based projects Warning: Cannot install package: SpoutGL

2. (when I try to disable and re-enable TextureSharing)

Exception in module register(): C:\Users*\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\blender-texture-sharing-master__init__.py Traceback (most recent call last): File "C:\Program Files\Blender Foundation\Blender 4.1\4.1\scripts\modules\addon_utils.py", line 444, in enable mod.register() File "C:\Users*\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\blender-texture-sharing-master__init__.py", line 63, in register keys.register() File "C:\Users*****\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\blender-texture-sharing-master\keys.py", line 152, in register bpy.utils.register_class(cls) ValueError: register_class(...): already registered as a subclass 'TEXS_PG_image_texshare_settings'

3. When I activate Share Texture (Streaming type: NDI)

Read prefs: "C:\Users*\AppData\Roaming\Blender Foundation\Blender\4.1\config\userpref.blend" Traceback (most recent call last): File "C:\Users*\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\blender-texture-sharing-master\operators.py", line 128, in texshare_send fbSender = FrameBufferSharingServer.create(context.camera.name, guivars.streaming_type) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users*\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\blender-texture-sharing-master\fbs\FrameBufferSharingServer.py", line 48, in create from .ndi.NDIServer import NDIServer File "C:\Users*\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\blender-texture-sharing-master\fbs\ndi\NDIServer.py", line 11, in class NDIServer(FrameBufferSharingServer): File "C:\Users*\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\blender-texture-sharing-master\fbs\ndi\NDIServer.py", line 33, in NDIServer def draw_texture(self, offscreen: gpu.types.GPUOffScreen, rect_pos: tuple[int, int], width: int, height: int): ^^^ NameError: name 'gpu' is not defined File "C:\Users*\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\blender-texture-sharing-master\operators.py", line 109, in texshare_send

maybites commented 6 months ago

are you sure you have the latest version?

maybites commented 6 months ago

It should be fixed now with V6.0.4.

Please let me know if it works for you.

newemka commented 6 months ago

Hello, I've just downloaded it again.

Version still shows 6.0.0

SpoutGL install: success It's woking fine with Spout Receiver and Tooll3 (Flip outgoing texture needs to be activated)

Ndi: I get the image in Ndi Studio Monitor and Tooll3 (the image is flipped) Flip outgoing texture has no effect

Activating Show Preview breaks the texture sharing for spout and ndi

newemka commented 6 months ago

Update: About NDI color management

in order to get the righ colors I had to swap the Red and Blue channels image

maybites commented 6 months ago

NDI colormanagement and preview is fixed. I don't know how to do the flipping, though

it has to happen somewhere here. probably a nifty numpy function that transforms the buffer array...

newemka commented 6 months ago

Despite my efforts to look at the code, I only managed to break it.

newemka commented 6 months ago

I noticed here that the version of NDIlib is 5.1.1.1 While on https://pypi.org/project/ndi-python/ the last version is 5.1.1.5

maybites commented 6 months ago

the reason I have to install this NDI wrapper manually is because 5.1.1.1 is the last working pip version but it only supports up to python 3.10. The developer doesn't respond anymore and doesen't seem to be interested to update the pip repo. So manual it is, resp. self compilation in case of linux. In a few days I will be able to compile the OSX version too.