我要发帖 回复

正式会员

3

主题

62

积分

0

专家分

兴趣点(最多三项):

视景仿真

私信
发表时间 : 2012-10-26 23:30:08 | 浏览 : 1398    评论 : 5
最近才开始学习VP+2003的编程,
现在想要实现对一个Channel中视景完成滤镜效果的功能,比如将场景渲染成指定的颜色。
我的想法是通过调用vpLight来完成。
代码如下:
#include "vpLight.h"//添加头文件
void CSimulateView::postFrame( void )
{
     CVpView::postFrame();
     HWND hVPWnd = (*vpWindow::begin())->getWindow();
     assert(::IsWindow( hVPWnd )== TRUE);
     if(getContinueRunning())
       ::SetFocus(hVPWnd);//激活vp视景窗口
     //else
    //  AfxGetApp()->GetMainWnd()->SetFocus();
     vpLight* light;
     vpTransform*tan1 =vpTransform::find("myTransform");
     tan1->addChild(light,-1,vpLight::DIRTY_UP_ALL);
     light->setColor(COLOR_SPECULAR,1.0f,0.0f,0.0f,1.0f);//设置颜色为红色
     light->setEnable(true);
}

但是总会弹出

error:'COLOR_SPECULAR':undeclared identifier

的错误,不知道'COLOR_SPECULAR'
该在哪里定义的?
还是有其他地方的问题?
PS:本人菜鸟一个,可能有些问题简单了,还请各位见谅哈。

图片1.png

最近VR访客

woshijiameizhou 评论于2012-10-27 08:44:48
本帖最后由 woshijiameizhou 于 2012-10-27 08:46 AM 编辑

我觉得一个好的滤镜应该通过GLSL实现。不过openGL也提供一个简单的颜色掩码glColorMask来屏蔽颜色分量。可以试着在vsChannel::EVENT_PRE_DRAW事件中屏蔽颜色,例如
  1. if (event == vsChannel::EVENT_PRE_DRAW) {
  2.                 channel->getVrChannel()->setClearColor(0.0f, 0.0f, 0.0f, 0.0f);
  3.                 channel->getVrChannel()->apply(context);

  4.                 glColorMask(GL_FALSE, GL_TRUE, GL_FALSE, GL_TRUE); //亮点在这里,显示绿色分量
  5. }
复制代码
仅供参考
        
woshijiameizhou 评论于2012-10-27 08:58:15
你用light发生的error:“COLOR_SPECULAR未声明的标示符”,好像是COLOR_SPECULAR前面缺少命名空间,XXXX::COLOR_SPECULAR
杰特凯勒 评论于2012-10-29 23:16:24
woshijiameizhou 发表于 2012-10-27 08:44 AM
我觉得一个好的滤镜应该通过GLSL实现。不过openGL也提供一个简单的颜色掩码glColorMask来屏蔽颜色分量。可 ...

嗯,感谢回复的。
那个
    if (event == vsChannel::EVENT_PRE_DRAW)
中,event怎么定义的,还有这段代码应该放到哪里?
        channel->getVrChannel()->apply(context);
中,context是什么意思的?
初学VP的,还望见谅。谢了哈。

woshijiameizhou 评论于2012-10-30 13:53:42
  1. virtual void notify(vsChannel::Event, const vsChannel *channel,vrDrawContext *context)
复制代码
之前回复过你的一个关于vp截屏的帖子,就在重写的那个notify方法里,区别是截屏在POST_DRAW事件处理,这个mask滤镜在PRE_DRAW事件中处理
Lionghua专家组 评论于2013-1-7 11:14:49
学习了!谢谢

手机版|VR开发网 统计 津ICP备18009691号
网安备12019202000257

GMT+8, 2021-8-5 09:39 PM

返回顶部