我已经使用glsl成功实现了一个cel着色器。但我的问题是概述一切,因特网上的每一个opengl例子都很老旧,与当前的技术不匹配,所以技术太慢等等......所以我无法找到在glsl中做到的。我想到了一些想法,比如将最不密集的区域着色为黑色,但对于gl_Vertex,gl_Position和眼睛位置还没有足够的解释。所以,由于每种技术都太旧了,我终于决定向某人询问这个轮廓问题。OpenGL GLSL Cel着色和轮廓算法
7
A
回答
9
我将使用某种类型的边缘检测滤波器对zbuffer然后调节与(逆向)结果帧缓冲器(可能与在滤色缓冲边缘检测进行组合)。其中最常见的边缘检测滤波器是Sobel算子:
http://en.wikipedia.org/wiki/Sobel_operator
编辑:这样做的另一种廉价的方式是你渲染普通网绘制网格的黑色副本扑杀面临前倒置,顶点稍微向法线方向移动。这可能是他们在XIII中所做的,我也很确定这是在Jet Set Radio中完成的。
EDIT2:如果您希望轮廓的厚度与观察者之间的距离保持恒定,则应该用这个距离来缩放移动顶点的量。
1
你看过glPolygonOffset了吗?
我用它来绘制概述了填充多边形的顶部。
http://www.khronos.org/opengles/sdk/docs/man/xhtml/glPolygonOffset.xml
+0
然而,你并没有对你的方法做任何说明,这并不明显,并且使得答案不是很有用。当你做的时候,我会回复你的观点:) –
相关问题
- 1. 轮廓轮廓着色器
- 2. 内部轮廓着色器算法
- 3. OpenGL ES着色器轮廓2D图像
- 4. GLSL着色算法优化
- 5. 着色非通用轮廓
- 6. OpenGL GLSL着色器统计
- 7. GLSL着色器 - 2D轮廓灯光效果
- 8. 可变宽度线轮廓着色器
- 9. 2D几何轮廓着色器
- 10. 轮廓vectorshape算法
- 11. Unity3d中的轮廓着色器
- 12. LWJGL opengl glsl着色器与int []属性
- 13. C++在OpenGL着色器(GLSL)位标志
- 14. 的OpenGL - GLSL着色器,alpha混合
- 15. shadowmapping opengl glsl着色器图形数学
- 16. FAUX HDR opengl ES 2.0着色器算法
- 17. OpenGL的每像素着色与GLSL着色器
- 18. GLSL着色器
- 19. 轮廓整合算法C++
- 20. HTML5 - 标题和轮廓算法 - 混淆
- 21. 使用GLSL着色器SDL2
- 22. OpenGL着色器和常量
- 23. 无法链接glsl顶点着色器
- 24. OpenGL计算着色器SSBO
- 25. OpenGL着色基本计算
- 26. GLSL着色器检测
- 27. OpenGL绘制矩形轮廓
- 28. OpenGL中的轮廓效果
- 29. 混合Cg和GLSL着色器
- 30. GIF白色轮廓
我认为这是一个简单的轮廓过于昂贵。 – deniz
你瞄准什么样的硬件? –
像x1650pro equivelant。 XIII游戏以某种方式满足真正旧硬件的要求。 – deniz