Forum Replies Created
-
AuthorPosts
-
vade
KeymasterThats honestly out of scope for me. Look at info for loading models with animation for Open Asset Import Library (Assimp) – they have a mailing list and info on their site. If it works with Assimp it will work for our model loader.
Good luck.
vade
KeymasterCant re-create in 6.0.5
vade
KeymasterWeird. I cannot re-create in 6.0.4. Are you using the latest jit.gl.syphon plugins?
vade
KeymasterThanks for the bug report. The model load should do this (or, I thought it did). Ill take a peek.
April 16, 2012 at 3:07 pm in reply to: Manual UVC exposure webcam control – Help with combining this code #5854vade
KeymasterKeep trying.
April 16, 2012 at 2:45 pm in reply to: Manual UVC exposure webcam control – Help with combining this code #5852vade
KeymasterSo make it in jitter. Im 95% sure you can use the same controls on web cams for adjustments.
vade
KeymasterTry using iGlasses
vade
KeymasterI think it would be nice if I had a pony.
vade
Keymasterjit.gl.mesh does not output an “image” as a matrix. It outputs 3D points, i.e., XYZ (W). You need to make an image our of your rendering. Therefore, you need to render to texture, and pass that texture to syphon. There are numerous examples of this online on C74 and here 🙂
vade
KeymasterHave you ensured the machine having the error is running 10.6 or 10.7, as per the read me?
vade
KeymasterYou need to read, and re-read, the read me.
vade
KeymasterIm confused. What exactly are you trying to do? QLab allows you to use QC, so use a Syphon Server QC plugin and everything stays on the GPU? You should never have to read back to the CPU, that defeats the entire purpose of Syphon.
For AVFoundation, you can use:
AVCaptureVideoPreviewLayer, coupled with AVCaptureDeviceInput, AVCaptureDevice, and of course AVCaptureSession. You use a CARenderer to render your AVCaptureVideoPreviewLayer directly on the GPU. You would bind a Syphon Servers FBO, and render directly into the shared IOSurface backed texture.
Code from a test QC Plugin:
Make session and what not
self.captureSession = [[AVCaptureSession alloc] init];self.captureSession.sessionPreset = AVCaptureSessionPresetHigh;
self.captureDevice = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
self.captureDeviceInput = [AVCaptureDeviceInput deviceInputWithDevice:self.captureDevice error:NULL];
[self.captureSession addInput:self.captureDeviceInput];
self.capturePreviewLayer = [AVCaptureVideoPreviewLayer layerWithSession:self.captureSession];
self.capturePreviewLayer.bounds = CGRectMake(0, 0, 640, 480);
self.capturePreviewLayer.videoGravity = AVLayerVideoGravityResizeAspect;
[self.captureSession startRunning];
Assuming a CALayer and CARenderer, when you bind the SyphonServers FBO, do:
glViewport (0, 0, imageBounds.size.width, imageBounds.size.height);glMatrixMode(GL_PROJECTION);
glPushMatrix();
glLoadIdentity();
glOrtho (0, imageBounds.size.width, 0, imageBounds.size.height, -1, 1);glMatrixMode(GL_MODELVIEW);
glPushMatrix();
glLoadIdentity();// Do we need this? I suspect not but...
glClearColor(0.0, 0.0, 0.0, 0.0);
glClear(GL_COLOR_BUFFER_BIT);if(!self.renderer)
self.renderer = [CARenderer rendererWithCGLContext:cgl_ctx options:nil];renderer.bounds = imageBounds;
renderer.layer = renderLayer;
renderer.layer.position = NSMakePoint(imageBounds.size.width/2.0, imageBounds.size.height/2.0);
renderer.layer.bounds = imageBounds;
renderer.layer.autoresizingMask = kCALayerWidthSizable | kCALayerHeightSizable;[renderer beginFrameAtTime:CACurrentMediaTime() timeStamp:NULL];
[renderer addUpdateRect:imageBounds];
[renderer render];
[renderer endFrame];glMatrixMode(GL_MODELVIEW);
glPopMatrix();
glMatrixMode(GL_PROJECTION);
glPopMatrix();
You can probably optimize this more by disabling blending and removing the clear, etc.
vade
KeymasterI’ve read posts where people have found the backing of the Window Servers CGImage using private API’s, allowing one to skip the copy phase. However I’m surprised that method beats out AVFoundation, because in theory the AVFoundation class can be used to stay entirely on the GPU, as far as I understand it. I’ve be interested in benchmarking the two. Oh time.
vade
KeymasterWe really need to get him to dump that on to SVN. Im doing a job with him, so I’ll bug him about it later today when I see him.
vade
KeymasterAVFoundations screen capture is the only way to do this with remotely decent performance. There is also CGWindowList APIs, which allow for some smarter window capturing, but at the expense of performance.
vade
KeymasterAs per the home page, that is a work in progress. Getting a C Array from those methods should be trivial.
vade
KeymasterThat functionality is part of the Syphon Framework. Did you look at the SDK documentation at all?
http://syphon.v002.info/FrameworkDocumentation/#finding-servers
vade
KeymasterNice! Thats great to see. 🙂
vade
KeymasterThis is a known bug fixed in the SVN Syphon Implementation for QC. Feel free to check out the plugin and compile it. It should fix it.
vade
KeymasterSounds reasonable. Ensure you have a decently fast disk to record at that size.
-
AuthorPosts