News:

Server migration complete, Welcome to version 2.1.1

+-+-

+-User

Welcome, Guest.
Please login or register.
 
 
 
Forgot your password?

+-Site Stats

Members
Total Members: 15487
Latest: cwr89
New This Month: 109
New This Week: 23
New Today: 7
Stats
Total Posts: 126958
Total Topics: 15571
Most Online Today: 108
Most Online Ever: 7634
(January 21, 2020, 02:14:03 AM)
Users Online
Members: 3
Guests: 38
Total: 41

Visualizer

Started by TexasStingray, August 06, 2014, 11:28:39 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

CaptainMurdoch

That is why I think it would be better to treat it as a video or a picture. You don't have to deal with stroke and fill just update the RGB data in memory and display the image as if you were dealing with raw RGB data for a picture.  Don't use the drawing operations instead update an actual RGB image as an array in memory.
-
Chris

David Pitts

Quote from: CaptainMurdoch on August 08, 2014, 07:43:41 PM
That is why I think it would be better to treat it as a video or a picture. You don't have to deal with stroke and fill just update the RGB data in memory and display the image as if you were dealing with raw RGB data for a picture.  Don't use the drawing operations instead update an actual RGB image as an array in memory.

I think using DirectX, OpenGL and other accelerated technologies is the quickest way to update the memory buffer. With the resolution of the screens we use it will not be a one to one mapping of pixel data to dot on the screen. One pixel may be represented by hundreds of screen pixels. Then you have probably want the ability to scale items on the screen. But I have only looked into it briefly many years ago. 
PixelController, LLC
PixelController.com

CaptainMurdoch

Quote from: David Pitts on August 08, 2014, 08:35:35 PM
I think using DirectX, OpenGL and other accelerated technologies is the quickest way to update the memory buffer. With the resolution of the screens we use it will not be a one to one mapping of pixel data to dot on the screen. One pixel may be represented by hundreds of screen pixels. Then you have probably want the ability to scale items on the screen. But I have only looked into it briefly many years ago.

Let DirectX/OpenGL/etc. do the scaling on the GPU.  'Draw' the display onto whatever size image you want that is sized to fit the physical display proportions and then let the GPU scale that image to fit the screen or the scaled window the user has on screen.  I think the visualizer editor and visualizer are two different things.  The editor needs to be able to scale, etc., but once you have scaled an item (arch, string, tree, etc.) and you have the coordinates of the pixels, then you map those once and you are done.  Any scaling to fit the screen for display purposes can be done on the GPU.  when I say update the raw RGB in memory, I'm not talking about the pixels on screen, I'm talking about a buffer which contains the raw RGB memory which is then displayed on screen and scaled by the hardware for efficiency.  This lets you resize, change monitors, computers, etc. without losing that placement information since that is all relative to the original image resolution.  The base image could be 1600x900 since that fits the proportions of your physical display, but then that gets scaled to fit your 1920-wide laptop screen or 4:3 ratio desktop screen, etc..
-
Chris

charleskerr

Well, I do off screen images, so for me it has proven to still be a performance challenge.  But I don't claim to be an expert on drawing primitives  either.

I can only go by my experience and the items I have tinkered with.  I believe a thousand of pixels get to be a challenge of updating them at 35 ms (even worse at 25ms).  But I readily admit what I have done can be done faster. 

Regardless, I believe the concept of a visualizer as a stand alone item is a good concept (I have to! It is what I did!), and is worth being pursued.
One is never too old to learn

Support FPP

+- Recent Topics

Christmas 2022 Lights by ShadowLight8
Today at 05:54:00 PM

FPP and projector by morrydavis
Today at 05:42:57 PM

Remote Relay Control by MGHaff007
Today at 05:42:01 PM

E1.31 data not getting to WLED controller by morrydavis
Today at 05:41:06 PM

Does FPP include an operating NTP server? by breese
Today at 05:11:29 PM

Wiring Diagram for the RJ45 port for DMX by dkulp
Today at 04:52:18 PM

GPIO by darylc
Today at 04:44:02 PM

FPP Settings dropdowns not populating by Poporacer
Today at 04:07:18 PM

USB Wifi Adapter by jem5136
Today at 02:15:45 PM

FPP 6.x Matrix Issues by cmndr brain
Today at 01:41:55 PM

Powered by EzPortal
Powered by SMFPacks Menu Editor Mod