iOS 3D 之 SceneKit框架德姆o分析语言

 

肌肤制作教程见:

 

下载地址:http://www.cyqdata.com/download/article-detail-427 
[服务器在“阿瓜斯卡连特斯”,国内一些打不开的请用代理]

 

语言 1

    // create a new scene
    //创建一个场景scene
    SCNScene *scene = [SCNScene sceneNamed:@"art.scnassets/ship.scn"];

    //实例化SCNcene,场景本身并不可见,需要添加在SceneView的场景上
    //创建并添加一个相册到scene
    //这段代码是用来创建并配置摄像机。摄像机处于的位置即视角所看的位置。  注意这里创建摄像机是创建了一个SCNNode,赋值了node的属性。这里需要了解一下node的作用。在SceneKit中,node即节点是非常关键的部分。node本身同样是不可见的,它的作用是节点化各个部件。比如一辆车,车身和方向盘都是模型,可以把方向盘的node添加在车身模型的node上,这样在车移动的时候,车模型的子node也会一起移动。车身各部件之间的相对位置是不变的。这样可以大大节省工作量。在渲染场景的时候,sceneKit会遍历所有的子node,cameraNode设置了属性camera,并把自己添加在了scene的rootNode上才会在scene显示的时候起作用

    // create and add a camera to the scene
    SCNNode *cameraNode = [SCNNode node];
    cameraNode.camera = [SCNCamera camera];
    [scene.rootNode addChildNode:cameraNode];

    //设置camera
    // place the camera
    cameraNode.position = SCNVector3Make(0, 0, 15);

    //代码用来创建并配置灯光效果。在3d成像中,灯光是很重要的一个环节。灯光和阴影可以让物体更有质感。light的type有四种,大家可以尝试。
    //创建light到scene
    // create and add a light to the scene
    SCNNode *lightNode = [SCNNode node];
    lightNode.light = [SCNLight light];
    lightNode.light.type = SCNLightTypeOmni;
    lightNode.position = SCNVector3Make(0, 10, 10);
    [scene.rootNode addChildNode:lightNode];


    // create and add an ambient light to the scene
    SCNNode *ambientLightNode = [SCNNode node];
    ambientLightNode.light = [SCNLight light];
    ambientLightNode.light.type = SCNLightTypeAmbient;
    ambientLightNode.light.color = [UIColor darkGrayColor];
    [scene.rootNode addChildNode:ambientLightNode];


    //得到飞机模型。注意这个方法recursively:(BOOL)的意思为是否在子node中查询。node是树形结构,会返回第一个遇到的@“ship”node。
    // retrieve the ship node
    SCNNode *ship = [scene.rootNode childNodeWithName:@"ship" recursively:YES];


    //让飞机绕y轴飞行。这里的动画是SCNAction,封装性和使用方法与UIVIew的二维动画类似,相当便捷。
    // animate the 3d object
    [ship runAction:[SCNAction repeatActionForever:[SCNAction rotateByX:0 y:2 z:0 duration:1]]];

    //得到用于展示的SCNView,并配置scnView的scene。
    // retrieve the SCNView
    SCNView *scnView = (SCNView *)self.view;

    // set the scene to the view
    scnView.scene = scene;


    //设置允许用户控制摄像机,显示状态,(fps等)一般是在开发中用作调试的

    // allows the user to manipulate the camera
    scnView.allowsCameraControl = YES;

    // show statistics such as fps and timing information
    scnView.showsStatistics = YES;

    // configure the view
    scnView.backgroundColor = [UIColor blackColor];

    //添加手势
    // add a tap gesture recognizer
    UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)];
    NSMutableArray *gestureRecognizers = [NSMutableArray array];
    [gestureRecognizers addObject:tapGesture];
    [gestureRecognizers addObjectsFromArray:scnView.gestureRecognizers];
    scnView.gestureRecognizers = gestureRecognizers;
    //这就是官方demo的基本内容。实现了一个模型的显示和动画。告诉了我们模型想变为可见,需要摄像机模拟视角,灯光和周围灯光展示,添加在根node中。

 

语言 2

 

 

四:提供的八套皮肤:global文件夹下有网址题指标计划sitetitle.html

在demo中比1般的文本多了二个scnasssets文件夹,这么些是存放在三d模型的公文夹,展开药方可看来.scn后缀的文件,这几个就是xcode识其余模型文件后缀的壹种

一:项目布局图:注意阅读启动指南。

语言 3

秋色园QBlog,一贯以来,都揭橥多用户博客本子,明日,终于升迁了一个power,发布单用户博客版本了。

 

CYQ.BlogQBlog)
特点:简洁,高品质,多语言,多数据库协助,或然支持linux下的mono布署运转。

Scene Kit 建立在 OpenGL
的根基上,包涵了如光照、模型、材料、录像机等高端引擎个性,这么些零件都以面向对象的,你能够用纯熟的
Objective-C 或 斯威夫特 语言来编排代码。假若你用过
OpenGL 最早的版本,那时还尚无 shader,只可以苦逼的接纳种种底层受限制的 API
开垦。而 Scene Kit 就好了成都百货上千,对于超越1/三需求(甚至像动态阴影等高档本性),使用它提供的上层 API 来布置,就早已足足了。

主导介绍:

 

 

Scene 基特 是Apple 向 OS X 开辟者们提供的 Cocoa 下的 3D 渲染框架。  

 

- (void) handleTap:(UIGestureRecognizer*)gestureRecognize
{
    //去到SCNView
    // retrieve the SCNView
    SCNView *scnView = (SCNView *)self.view;

    //找到对应的node
    // check what nodes are tapped
    CGPoint p = [gestureRecognize locationInView:scnView];
    NSArray *hitResults = [scnView hitTest:p options:nil];

    // check that we clicked on at least one object
    if([hitResults count] > 0){
        // retrieved the first clicked object
        SCNHitTestResult *result = [hitResults objectAtIndex:0];

        // get its material
        SCNMaterial *material = result.node.geometry.firstMaterial;

        // highlight it
        [SCNTransaction begin];
        [SCNTransaction setAnimationDuration:0.5];

        // on completion - unhighlight
        [SCNTransaction setCompletionBlock:^{
            [SCNTransaction begin];
            [SCNTransaction setAnimationDuration:0.5];

            material.emission.contents = [UIColor blackColor];

            [SCNTransaction commit];
        }];

        material.emission.contents = [UIColor redColor];

        [SCNTransaction commit];
    }
}

 

 

运维指南:

语言 4

伍:暗中同意运营:SQLite版本

创建多少个种类:

 

语言 5

先导进的模版机制,最原始的模版手法,填充id就可以展现内容,不要求上学那么些复杂的沙盘语法。

http://www.cyqdata.com/qblog/article-cate-2744

 

语言 6

二:Bin目录下:直接运转QBlog-IIS.exe就可以运营网址,假如是陆10人系统,解压System.Data.SQLite_x64.rar,复盖32位的dll再运行。

更加多介绍及学科见:http://www.cyqdata.com/qblog 

 

1**:登录并下载

二:大多据库版本效果:(私下认可提供access/sqlite/mssql(两千/二零零六/二零一零)/mysql
八种,数据库在App_Data目录下,切换配置链接在web.config中。

四:多皮肤作用:默认提供捌套皮肤,在/skin/目录下,可随心所欲修改(需求保留power
by CYQ.Blog
链接):

 

 

 

 

项目截图:

 

 

 

CYQ.Blog(简称QBlog)博客:下载地址:http://www.cyqdata.com/download/article-detail-427

前言表明:

 

 

 

贰:阅读:QBlog博客作用介绍.txt**

 

 

一:多语言功效(中国和英国暗中认可):web.config中配备

三:缓存与转移静态页面效果:在/XmlConfig/ParaConfig.xml中陈设。

本次发表单用户博客版本,采取新式程序改V三.0本子写成,底层选取
CYQ.DataV伍高品质内核,质量超群。

 

 

 

语言 7

 

 

3:直接提供肆种数据库:access和sqlite直接提供,mysql和mssql(2000/二零零六/二零一零通用)提供数据库脚本

职能简要介绍:

本版本为无偿版本,允许无偿使用于商业与非商业(须求保留尾巴部分power by CYQ.Blog(
链接)。

5:帮忙用MetaWebBlog API,可使用live Writer客户端工具发表小说

语言 8

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图