标签: openframeworks

是否有用于像 Processing 或 OpenFrameworks 这样的艺术编码的 .Net 库?

我真的很喜欢处理 ( http://processing.org )所做的工作,但我更多地接触 .Net 世界并希望留在那里。.Net 中是否有一个库或子语言非常注重艺术家的易用性?

Processing 和 OpenFrameworks 之所以出色,是因为从代码创建动画和其他视觉艺术非常容易,而无需担心其他部分。

.net processing openframeworks

5
推荐指数
1
解决办法
3036
查看次数

如何修复xcode始终编译所有内容?

我已经开始使用XCode了,它似乎很有用,其中大部分都是如此.

令人讨厌的是它每次都编译所有源文件,甚至那些没有改变的源文件.

我正在接触openframeworks并且每次都浪费时间编译openframeworks源文件,尽管它们没有改变.

这是我的IDE和机器详细信息:

XCode版本3.1.2组件版本Xcode IDE:1149.0 Xcode核心:1148.0 ToolSupport:1102.0

Mac OS X版本10.5.6

有没有人遇到过同样的问题?任何解决方法?

c++ macos xcode openframeworks

5
推荐指数
2
解决办法
3416
查看次数

openFrameworks Visual Studio安装教程?

我一直在尝试使用Visual Studio编译oF示例,但我要么缺少一个链接或什么东西..是否有关于如何使用Visual Studio 2010(或2008 - 或任何版本)设置oF的教程?如果没有,有人可以提供有关使用Visual Studio设置oF的分步说明吗?

(不幸的是,oF网站没有提供有关使用VS设置oF的任何信息.他们的VS链接只是告诉你如何下载VS oO http://www.openframeworks.cc/setup/vs-2008)

installation openframeworks visual-studio

5
推荐指数
1
解决办法
6808
查看次数

使用openframeworks/opengl的色度键

我需要在openFrameworks应用程序中实现色度键控(删除纯色背景).

我将同时播放许多(10个或更多)视频(在同一帧中),并将它们与替代背景一起绘制到屏幕上.我可以通过迭代每个帧的像素并根据绿色阈值为每个像素设置alpha值来实现类似色度键的效果,但是同时有如此多的视频,这种像素敲击变得令人望而却步.

是否有一个简单的OpenGL混合模式或屏蔽操作,可以避免绘制某个颜色值的所有像素?或者是否有另一个openFrameworks或openFrameworks兼容的C++库可以有效地执行此操作?

或者,是否有一种良好(节省空间)的方式在快速兼容的视频文件中存储alpha通道?我们将存储数TB的视频(连续录制数周),因此我们使用节省空间的格式非常重要.

一个注意事项:源文件中的色度键颜色将是"完美的" - 它是以数字方式添加的.因此,如果有某种阈值处理或按位逻辑技巧可以做到这一点,那也可以.


编辑:这是有效的,遵循VJo的像素着色器的建议.我们使用glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA)了以下像素着色器(洋红色作为替换颜色):

"数据/着色器/ chromakey.frag":

#extension GL_ARB_texture_rectangle : enable

uniform sampler2DRect src_tex_unit0;
vec4 color;

void main( void )
{
        vec2 st = gl_TexCoord[0].st;
        vec4 sample = texture2DRect(src_tex_unit0, st );
        gl_FragColor = sample;
        if((sample.r > 0.5) && (sample.g < 0.5) && (sample.b > 0.5)) {
                gl_FragColor.a = 0.0;
        }
}
Run Code Online (Sandbox Code Playgroud)

"数据/着色器/ chromakey.vert":

void main()
{
    gl_Position = ftransform();
    gl_TexCoord[0] = gl_MultiTexCoord[0];
}
Run Code Online (Sandbox Code Playgroud)

着色器的C++代理类 - shaderChromakey.h:

#include "ofMain.h"
#include "ofxShader.h"
#include "ofxFBOTexture.h"

class …
Run Code Online (Sandbox Code Playgroud)

c++ opengl openframeworks chromakey

5
推荐指数
1
解决办法
4898
查看次数

Visual Studio 2010中未解析的外部符号

我来自Xcode,尝试在Visual Studio 2010中编译项目,我收到以下错误:

2>ofxCLeye.obj : error LNK2019: unresolved external symbol "struct _GUID __cdecl CLEyeGetCameraUUID(int)" (?CLEyeGetCameraUUID@@YA?AU_GUID@@H@Z) referenced in function "public: static int __cdecl ofxCLeye::listDevices(void)" (?listDevices@ofxCLeye@@SAHXZ)
2>ofxCLeye.obj : error LNK2019: unresolved external symbol "int __cdecl CLEyeGetCameraCount(void)" (?CLEyeGetCameraCount@@YAHXZ) referenced in function "public: static int __cdecl ofxCLeye::listDevices(void)" (?listDevices@ofxCLeye@@SAHXZ)
2>ofxCLeye.obj : error LNK2019: unresolved external symbol "bool __cdecl CLEyeCameraGetFrameDimensions(void *,int &,int &)" (?CLEyeCameraGetFrameDimensions@@YA_NPAXAAH1@Z) referenced in function "public: void __thiscall ofxCLeye::grabFrame(void)" (?grabFrame@ofxCLeye@@QAEXXZ)
2>ofxCLeye.obj : error LNK2019: unresolved external symbol "bool __cdecl CLEyeCameraGetFrame(void *,unsigned char *,int)" (?CLEyeCameraGetFrame@@YA_NPAXPAEH@Z) …
Run Code Online (Sandbox Code Playgroud)

c++ visual-studio-2010 openframeworks

5
推荐指数
1
解决办法
2万
查看次数

glsl - 片段着色器(模糊) - >黑屏

我一直试图让这个工作过去几天,我真的开始变得绝望了.我真的很感激你的建议.

我一直在努力做的事情:

  • 将场景渲染给FBO
  • 使用glsl着色器模糊附加的纹理
  • 将生成的纹理渲染到屏幕对齐的四边形

问题:

如果我启用片段着色器(水平模糊),我会得到一个模糊的图像渲染到我的四边形第一帧左右,之后它全部变黑.

我怀疑我将纹理传递给着色器的方式有问题:

    horizontalBlurVertex.enable();

    horizontalBlurFragment.enable();

    glActiveTexture(GL_TEXTURE0);
    glBindTexture(GL_TEXTURE_2D, fboTexture);
    glUniform1i(glGetUniformLocation(horizontalBlurFragment.program, "RTScene"), 0);
Run Code Online (Sandbox Code Playgroud)

编辑: 另外一条信息:如果我删除glUniform1i(glGetUniformLocation(horizo​​ntalBlurFragment.program,"RTScene"),0); 我得到完全相同的结果.我猜这表明我的着色器从未获得任何纹理数据.

来源:

顶点着色器:

varying vec2 vTexCoord;

void main(void)
{
   gl_FrontColor = gl_Color;
   gl_Position = ftransform();

   vec2 Pos;
   Pos = sign(gl_Vertex.xy);

   gl_Position = vec4(Pos, 0.0, 1.0);

   vTexCoord = Pos * 0.5 + 0.5;
}
Run Code Online (Sandbox Code Playgroud)

片段着色器:

uniform sampler2D RTScene;
varying vec2 vTexCoord;

const float blurSize = 1.0/800.0;
const float weightSum = 70.0 + 2.0 * (1.0 + 8.0 + 28.0 + 56.0);

void main(void) …
Run Code Online (Sandbox Code Playgroud)

c++ opengl openframeworks fragment-shader

5
推荐指数
1
解决办法
3347
查看次数

你能在Cocoa(Obj-C)项目中使用C++库吗?

我正在考虑学习Objective-C和Cocoa,主要是为了使用Apple的工具和GUI.

但是,我也想做一些图形编程; OpenFrameworks和Cinder是两个引起我注意的库,但后来我们在C++领域.

我来自Java/Swing/Processing背景......对C系列不太了解.如何有效地从本机Cocoa调用Cinder和C++等C和C++库?

并且,奖励积分:这样的解决方案可以在iPhone或iPad上运行吗?

c++ cocoa objective-c openframeworks cinder

5
推荐指数
2
解决办法
1781
查看次数

如何在Box2d中实现项目符号时间?

我想为我的box2d应用程序实现某种子弹时间,谷歌搜索我发现他们建议改变时间步长(如从1/30到1/60),但它很快被标记为不良做法,我需要的所有帖子是一个基本的开/关触发慢动作,任何想法?

box2d openframeworks

5
推荐指数
1
解决办法
735
查看次数

使用glFrustum进行轴外投影

我正在尝试使用OpenGL对场景进行离轴投影,并且我将文档读取到了Robert Kooima的离轴投影,现在对于实际需要做的事情有了更好的想法,但仍然有一些部分我觉得这里很棘手.我知道OpenGL的离轴投影代码有点如下:

代码1:

glMatrixMode(GL_PROJECTION);  
    glLoadIdentity();            
    glFrustum(fNear*(-fFov * ratio + headX),  
              fNear*(fFov * ratio + headX),  
              fNear*(-fFov + headY),  
              fNear*(fFov + headY),  
              fNear, fFar);  
          
    glMatrixMode(GL_MODELVIEW);  
    glLoadIdentity();  
    gluLookAt(headX*headZ, headY*headZ, 0, headX*headZ, headY*headZ, -1, 0, 1, 0);
    glTranslatef(0.0,0.0,headZ);
Run Code Online (Sandbox Code Playgroud)

如果这是用户位于屏幕中心的正常透视投影,那么我理解的内容相当容易理解.

               Screen  
                   |
                   |  h = H/2
                   |  
x----- n -----------
                   |
                   |  h = H/2
                   |
Run Code Online (Sandbox Code Playgroud)

当用户在x处并且距离屏幕的距离为n时,glFrustum的顶部,底部坐标将被计算为:(假设theta是视野(fov),我认为假设为30度)

h = n * tan (theta/2);
tanValue = DEG_TO_RAD * theta/2;
[EDIT Line additon here>>]: fFov = tan(tanValue);
h …
Run Code Online (Sandbox Code Playgroud)

c++ opengl algorithm 3d openframeworks

5
推荐指数
1
解决办法
1890
查看次数

"类型"不是指C++上的值

我在OpenFrameworks图片中遇到此错误.但似乎是一个简单的C++问题.

ofVec2f does not refer to a value
Run Code Online (Sandbox Code Playgroud)

当然我有指针问题,但我不明白为什么.我试图改变& - >*

canvas4.cpp

void Canvas4::createStuff() {
    ballCollection.clear();
    for (int i=0; i<num; i++) {
        ofVec2f org;
        org.set(ofRandom(edge, ofGetWidth()-edge), ofRandom(edge, ofGetHeight()-edge));
        float radius = ofRandom(50, 150);
        ofVec2f loc;
        loc.set(org.x+radius, org.y);
        float offSet = ofRandom(TWO_PI);
        int dir = 1;
        float r = ofRandom(1);
        if (r>.5) dir =-1;
        myBall = new Ball(org, loc, radius, dir, offSet);
        ballCollection.push_back(* myBall);
    }

//
Run Code Online (Sandbox Code Playgroud)

这是Ball类的构造函数;

Ball::Ball(ofVec2f &_org, ofVec2f &_loc, float _radius, int _dir, float _offSet) {
// **** error …
Run Code Online (Sandbox Code Playgroud)

c++ pointers openframeworks

5
推荐指数
3
解决办法
8918
查看次数