Max*_*Max 3 objective-c ios scenekit
我目前正在尝试使用SceneKit中的SCNShapeNode渲染圆。但是不幸的是,它并不能绘制出一个完美的圆,而是一个八边形。
有什么方法可以设置SCNShape的渲染细节吗?
UIBezierPath *path = [UIBezierPath bezierPathWithArcCenter: CGPointMake(0, 0) radius: 2 startAngle: 0.0 endAngle: M_PI * 2.0f clockwise: NO];
SCNShape *shape = [SCNShape shapeWithPath:path extrusionDepth: 1.0];
shape.firstMaterial.diffuse.contents = [UIColor colorWithRed: 1.0 green:0.0 blue:0.0 alpha:1.0];
SCNNode *shapeNode = [SCNNode nodeWithGeometry: shape];
[scene.rootNode addChildNode: shapeNode];
Run Code Online (Sandbox Code Playgroud)
从文档:
路径的平坦度(请参见NSBezierPath类参考中的setFlatness :)确定SceneKit从路径构建三维形状时使用的详细程度-较大的平坦度值导致较少的多边形渲染,从而提高了性能。
相反,较低的平坦度值导致形状更平滑。
Bezier路径平坦度非常适合此API,因为它以像素/点为单位进行度量,默认情况下以像素/点为单位 SCNShape是场景(或本地节点)空间的一个单位。因此,如果您的形状是10个场景单位宽,则就像试图以2D形式渲染10像素的路径...您需要非常低的平坦度值才能使其平滑。
要在您的非答案中回答问题:subdivisionLevel填充物和边缘折痕业务并不是真正要使用的SCNShape-它们是针对设计用于细分曲面渲染的自定义几何图形的。
| 归档时间: |
|
| 查看次数: |
1040 次 |
| 最近记录: |