最新评论

共2页: 1 2 下一页 
Re:GNU autotools 中文版 KPTu 2011-06-10 16:18  
good share,thanks
Re:SwapBuffers的效率问题 legion 2011-05-27 16:49  
偶然发现这里,,特地注册关注,,
Re:Hook Function wangfengmsdn 2011-03-08 23:22  
我顶了,哈哈哈 中国KINECT论坛 [url=http://www.cnkinect.com/]http://www.cnkinect.com/[/url]
Re:ms opengl 1.1 source download wl_99888 2010-11-13 14:10  
bjtuwanglei@gmail.com 博主给的enginedev.net进不去了,可否发至我邮箱,谢谢.
Re:SwapBuffers的效率问题 binrice 2010-11-03 15:32  
可能会对效率有些影响,但是应该不是你分析的那样。你统计此函数的效率时,并未关闭垂直同步,因此无论你怎么测试,都会在13ms上下,这由你显示器的刷新率决定的。此函数调用应该在不超过1us秒的。
Re:如何判断一点在三角形内 cgwolver 2010-10-13 16:08  
呵呵,多谢大家关注和指正,本文是群友讨论记录,有疏漏指出,请多指正!欢迎大家加入 63708310 讨论3d引擎技术。
Re:如何判断一点在三角形内 neko 2010-07-06 01:51  
我傻得拿这文章去写程序, 一写发觉非常无语. 面积 归一 和平面 3种算法均有错. 而且本来平面法是最高效率的. )1 引用" if( P.DotProduct( N ) + D > 0 ) return false; 这个应该是 Dot(P,N) - D == 0 吧 )2 引用" n[0] = N.CrossProduct(AB); //朝向内侧 ABC 顺序符合右手定则的情况下 程序计算后这个得出来是外侧! )3 引用" S(ABC) = AB.CrossProduct(AC);//*0.5; 这样算是错的 应该是 S_ABC = |Coss(AB,AC)| 绝对值不能少 也就是 S_ABC = Coss(AB,AC).Length(); //C# 这样算程序才得出正确结果. 我修改该文的逻辑并编写了代码 通过Matrix 变换 和不同的输入点测试了各种情况 结果正确 经过 循环测试 使用平面的方法效率是最高的 平面方法中不需要归一处理 因为只需要判断是否大于0 归一计算是可以省略或避免的。
Re:ms opengl 1.1 source download Swift 2010-03-24 18:22  
有人有代码吗?有的话传我一份,不胜感激~~~~
Re:ms opengl 1.1 source download cgwolver 2009-11-21 23:01  
终于弄出wingdip.h来了 [url=点此下载wingdip.h]http://files.cnblogs.com/cgwolver/wingdip.h.rar[/url]
Re:ms opengl 1.1 source download cgwolver 2009-11-21 18:36  
wingdip.h是make的时候产生的文件,来自于 wingdi.w
Re:d3d9d.dll反编译出来的c代码 刀山铁衣 2009-10-23 10:13  
虽然看不懂,但还是觉着很强大
Re:Screen Space Ambient Occlusion 可以 2009-10-19 14:44  
文章挺有用的,不过翻译还是应该多加琢磨,有些地方意思和原文不同~
Re:SwapBuffers的效率问题 edison1024 2009-09-22 14:25  
楼主的意思是不是这样? HINSTANCE hIns = ::LoadLibrary(TEXT("opengl32.dll")); PROC pFunc = ::GetProcAddress(hIns, "wglSwapBuffers"); wglSwapBuffers = (PFNSWAPBUFFERSPROC)(pFunc); ::FreeLibrary(hIns); 我测试了一下,好像帧率没有什太大的变化啊
Re:wowmodelviewer for collada 老狼[cgwolver] 2009-09-08 00:23  
[b]修复了wmo的纹理问题,放出 wowmodelviewer-for-collada 源代码:
Re:ms opengl 1.1 source download 老狼[cgwolver] 2009-09-06 10:13  
@free314 泄露的windows 源代码有两份,一份是winnt的,一份是win2k的。
Re:ms opengl 1.1 source download free314 2009-08-17 11:50  
楼主,微软实现的 OpenGL 1.1 source code 你编译过了吗? 我编译了一下,缺少NT.H文件啊 把它改这WINNT.H,莫名错误好多 你有遇到这问题吗? 等待楼主出现 [quote]老狼[cgwolver]:另外补充说明,这部分source来自于早先泄露的ms ntsrc,注意,不是win2ksrc,其余所需的文件在ntsrc中,不过好像仍然缺少wingdip.h,谁有这个文件,请告诉我,谢谢![/quote] 这个ntsrc在哪啊,我用的是WINDOWS XP系统 另外我在引擎开发网上你的帖子上也留言了,期待楼主回复呀!!
Re:Windows 管理员密码破解工具 spanish 2009-07-29 14:23  
[url=http://www.24hourspanishtranslation.com/]spanish to english translation[/url]
Re:Screen Space Ambient Occlusion 阿斯顿飞 2009-07-29 14:20  
[url=http://www.seo4company.com/]seo services[/url]
Re:Screen Space Ambient Occlusion 阿斯顿飞 2009-07-29 14:20  
<a href=http://www.seo4company.com/>seo service</a>
Re:ms opengl 1.1 source download peterfl 2009-07-28 15:21  
fenglupeter@gmail.com 非常感谢!
re: Max GAME klcclau 2009-06-26 14:04  
eeee
re: SwapBuffers的效率问题 macfree 2009-05-13 11:23  
ms是故意的,这个世人都知道,意在推广d3d.
re: SwapBuffers的效率问题 chiyer 2009-04-01 21:04  
up一下老狼~~

re: 如何判断一点在三角形内 lililililililili 2009-03-26 22:58  
//算法解析
//////////////////////////////////////////////////////////////////////////
//三角形内点可以表达为
//v0 + (v1 - v0)*u + (v2 - v0)*v
//射线上的点可以描述为
//origin + dir*t
//交点既在平面上,又在射线上
//满足方程
//v0 + (v1 - v0)*u + (v2 - v0)*v = origin + dir*t
//变形
//(-dir)*t+ (v1-v0)*u + (v2 - v0)*v = origin - v0
//转化为三元一次方程组
//////////////////////////////////////////////////////////////////////////
//三角形两边
vertex3d edg1 = v1 - v0;
vertex3d edg2 = v2 - v0;
//射线方向与边二的叉积
vertex3d pvec;
cross3d(&pvec,&dir,&edg2);
double det = dot3d(&edg1,&pvec);

vertex3d tmpvec;

if(det>0)
{
tmpvec = origin - v0;// 从正面穿越三角形,三角形和视点相对的面为正面
}else
{
tmpvec = v0 - origin;//反面穿越三角形穿越三角形
det = -det;
}

if(det<MATHPRESISION) //射线在平面上
return false;

// 求u的值,求线性方程组的解展开后等同于求点积展开
*u = dot3d( &tmpvec, &pvec);
if( *u < 0.0f || *u > det )
return false;

//测试V值
vertex3d qvec;
cross3d( &qvec, &tmpvec, &edg1);

*v = dot3d( &dir, &qvec);
if( *v < 0.0f || *u + *v > det )
return false;

//求len
*len = dot3d(&edg2, &qvec );
double fInvDet = 1.0 / det;
*len *= fInvDet;
*u *= fInvDet;
*v *= fInvDet;

return true;
re: ms opengl 1.1 source download Horusli 2009-03-04 14:08  
ykLi1983@gmail.com
very thanks.
re: ms opengl 1.1 source download xuyuehui 2009-02-16 20:42  
xuyuehui@gmail.com
谢谢
re: Max GAME 曾冠諦 2009-02-11 11:43  
謝啦!!
我也會繼續找方法。
re: Max GAME 老狼[cgwolver] 2009-02-11 00:01  
@曾冠諦
明白,这个问题我也考虑过,不过现在还没有答案.有了我会告诉你
re: Max GAME 曾冠諦 2009-02-09 10:56  
關於切換試圖,有一種情況是,ogre的viewport已經開啟,但在別處又重新開啟了一次,我想要只保留新的那個viewport,所以對舊的viewport進行銷毀,這時該如何將銷毀後的viewport設為perspective或任何一支camera?或是恢復成之前的狀態。
我試過在createViewWindow時將mOldVp = ip->GetActiveViewport();將回傳的ViewExp*存在mOldVp ,並在銷毀後調用mOldVp->SetViewUser(false);
但即使這樣,舊的viewWindow還是原樣,而且在舊的viewport上直主動切成其他如perspective camera時,仍會呼叫DestroyViewWindow(),這是否意味舊的viewport並未成功銷毀??說了一推,不知清不清楚^^。
re: Max GAME 老狼[cgwolver] 2009-02-06 22:44  
@wanghuok
我把hook 3dsmax api的方法写在论坛了.
http://www.enginedev.net/read.php?tid-33.html
re: Max GAME wanghuok 2009-02-06 22:38  
您好,请问,怎样hook动态库中的虚函数~
re: Max GAME 老狼[cgwolver] 2009-02-05 12:22  
@曾冠諦
我是这么做的,当切换其他视图的时候,会进入DestroyViewWindow,这个时候你设置一个标志变量,让线程的循环退出,然后用while循环等待线程退出并清理资源,然后就可以把你自己的窗口销毁了。

void MaxViewport::DestroyViewWindow(HWND hWnd)
{
m_bClose = 1;//标志线程循环退出
CONTEXT ctx;

while( ::GetThreadContext( m_hThread,&ctx) )
{
}


::DestroyWindow( m_hWnd );
m_hWnd = 0;
}

用PostThreadMessage 通知线程退出应该也可以,不过我没有试过。。。
re: Max GAME 曾冠諦 2009-02-05 12:13  
先前的問題我解決了,我用你的方法建立出window再將其handle 交給ogre。
接下來,問題又來了。
我希望在PutUpViewWindow之後能在切回其他的camera(如perspective),請問您知道如何得到通知前到其他的camera好讓我將thread中的redraw停掉。
謝謝。
re: Max GAME 老狼[cgwolver] 2009-02-05 12:10  
@曾冠諦
不可以。因为MaxViewport::CreateViewWindow 就是选择Views/Extended/Game 时候框架所调用的创建新视图的接口;如果你要使用已有视图也可以,但是也许会和这个视图本身的渲染流程会出现冲突。比如这个视口是3dsmax 内部创建的OpenGL视图,那么如果你自己的渲染也是在同一线程,那么必然存在冲突。如果是d3d视图也会无法保证当前视图本身的渲染与你自己的渲染起冲突。最好的办法是自己创建新的视图,把句柄传给Ogre。我想你大概是要利用3dsmax的自身建模功能,而又想用Ogre接口将其表现出来,建议你还是自己新建一个视口,而不是取现有的视口。如果选择Ogre OpenGL,除去创建独立的子窗口,还要创建独立线程,否则也许会存在冲突。用AttachInput 获得输入。关于如何在自己创建的视图里用Ogre画出来,可以看一看插件示例程序中的Autodesk\3ds Max 9\maxsdk\samples\objects\prim.vcproj的代码。。。
re: Max GAME 曾冠諦 2009-02-05 10:27  
感謝你這麼快就回信了,不過這樣的解法行不通^^|||
因為我現在的目的是要建立用OGRE創建的WINDOW
我的做法是
HWND MaxViewport::CreateViewWindow(HWND hParent, int x, int y, int w, int h)
{
Interface* pkInterface = GetCOREInterface();
ViewExp *vpt;

//取得現在的激活的Viewport
vpt = pkInterface->GetActiveViewport();
GraphicsWindow* gw = vpt->getGW();
gw->querySupport(GW_SPT_GEOM_ACCEL);

m_hWnd = gw->getHWnd();
m_hDC = GetDC(m_hWnd);

if(m_hDC)
{
// 在這裡將HANDLE傳給OGRE,OGRE會利用此HANDLE建立出視窗
InitOgre(m_hWnd, gw->getWinSizeX(), gw->getWinSizeY());

return m_hWnd;
}

return NULL;
}

對OGRE來說,他底層會去判斷是否有傳入HANDLE,若無的話則會調用CreateWindow來建立新的WINDOW,所以我無法自行CreateWindow,
還是說我改成讓OGRE自行建立Window(他有附帶的CallBack function,同你說的做法),之後再將他回傳的Handle attach在hParent之下。不過這樣的做法似乎還是有一個問題,就是仍然必須先讓這個Viewport MakeExtendedViewportActive,但我不知道怎麼做@@。

不知道我這樣的分析對不對?
re: Max GAME 老狼[cgwolver] 2009-02-04 21:07  
@曾冠諦
//注册窗口类时指定__DefWindowProc,类名"OPENGLWINDOW"
WNDCLASSEX wc = { sizeof(WNDCLASSEX), CS_CLASSDC, __DefWindowProc, 0L, 0L,
hInst, NULL, NULL, NULL, NULL,
"OPENGLWINDOW", NULL };

::RegisterClassEx( &wc );
...

//使用这个窗口类创建窗口,那么这个窗口的消息将会进入__DefWindowProc

HWND hWnd = CreateWindow(
"OPENGLWINDOW",

...
re: Max GAME 曾冠諦 2009-02-04 10:32  
嗨!!
看到你的文章很開心,終於找到有人跟我一樣在做類似的事情。
請問你是如何註冊__DefWindowProc(),才能讓extendedViewport 能夠在滑鼠點擊時進入__DefWindowProc()這一個function做訊息判斷。
re: ms opengl 1.1 source download 老狼[cgwolver] 2009-02-04 01:26  
鉴于版权问题,截至现在不提供直接下载了.请到以下论坛页面的OPENGL版块查找下载.
http://www.enginedev.net/read.php?tid-7.html
re: ms opengl 1.1 source download cdgray 2009-02-01 17:09  
谢谢博主啦
re: ms opengl 1.1 source download winfree 2009-01-21 18:04  
多谢博主:)
re: ms opengl 1.1 source download jjq 2009-01-21 13:54  
谢谢
jiang.j.q@3s.com.cn
re: ms opengl 1.1 source download 孟兄 2009-01-21 11:40  
谢谢
re: Max GAME luren 2009-01-19 13:20  
Everytin is good, except 3d max is very expensive.
re: ms opengl 1.1 source download 老狼[cgwolver] 2009-01-18 21:45  
另外补充说明,这部分source来自于早先泄露的ms ntsrc,注意,不是win2ksrc
re: ms opengl 1.1 source download joecgs 2009-01-18 21:24  
joecgs@gmail.com
多谢楼主
re: ms opengl 1.1 source download 刘云辉 2009-01-17 13:38  
谢谢!
re: ms opengl 1.1 source download iceshark 2009-01-15 13:59  
谢谢
re: ms opengl 1.1 source download cicero 2009-01-14 20:44  
多谢了
re: ms opengl 1.1 source download PaulLiJi 2009-01-14 14:51  
jc_programs@yahoo.com.cn
辛苦了
re: ms opengl 1.1 source download opq 2009-01-14 13:39  
chun_87@126.com

thank you!
共2页: 1 2 下一页 

导航

<2012年2月>
2930311234
567891011
12131415161718
19202122232425
26272829123
45678910

公告

昵称:cgwolver
园龄:3年6个月
粉丝:5
关注:1

搜索

 
 

常用链接

我的标签

随笔档案

相册

好友链接

最新评论

阅读排行榜

评论排行榜

推荐排行榜