目录一、背景二、实现过程1.环境2.基操1.给模型添加VRIK组件 2.指定输入Transform(头、左手、右手)二、发现问题三、参数功能1.分块2.Solver1.几个全局解算参数2.Spine——脊柱变量,包括头、盆骨、胸、脊柱点、根旋转四、解决问题一、背景需求:接收VR端输入 头(最好是眼睛的位置)、两个手(wrist)、有需要可以再多加两个跟踪器在脚上,我这里没有。输出:反解算出来的其他姿态。难点:人物模型身高和现实真人身高不匹配导致相机位置异常、相机位置和头部位置的偏差。二、实现过程1.环境unity2019.4.28+steamvr2.7.3+unity商店的Kazuko人物模
目录一、背景二、实现过程1.环境2.基操1.给模型添加VRIK组件 2.指定输入Transform(头、左手、右手)二、发现问题三、参数功能1.分块2.Solver1.几个全局解算参数2.Spine——脊柱变量,包括头、盆骨、胸、脊柱点、根旋转四、解决问题一、背景需求:接收VR端输入 头(最好是眼睛的位置)、两个手(wrist)、有需要可以再多加两个跟踪器在脚上,我这里没有。输出:反解算出来的其他姿态。难点:人物模型身高和现实真人身高不匹配导致相机位置异常、相机位置和头部位置的偏差。二、实现过程1.环境unity2019.4.28+steamvr2.7.3+unity商店的Kazuko人物模
目录final关键字final修饰变量final修饰方法final修饰类static关键字static修饰变量static修饰方法static修饰代码块static定义内部类关于初始化顺序final关键字final修饰变量被修饰的变量不能被改写对于基本类型来说,其值不能改变对于引用类型(对象),对象的引用不能改变,但对象内部的属性是可以改变的tips:在并发编程中,适当用final修饰一些只读变量,有利于减少额外的同步开销final修饰方法被修饰的方法不能被子类重写private方法隐式被定为final,所以若子类中定义的方法和父类中的private方法命名相同。那么此时子类并不是重写该父类方
目录final关键字final修饰变量final修饰方法final修饰类static关键字static修饰变量static修饰方法static修饰代码块static定义内部类关于初始化顺序final关键字final修饰变量被修饰的变量不能被改写对于基本类型来说,其值不能改变对于引用类型(对象),对象的引用不能改变,但对象内部的属性是可以改变的tips:在并发编程中,适当用final修饰一些只读变量,有利于减少额外的同步开销final修饰方法被修饰的方法不能被子类重写private方法隐式被定为final,所以若子类中定义的方法和父类中的private方法命名相同。那么此时子类并不是重写该父类方
JAVA常见基础知识点一、注释Java中有三种注释,分别是单行注释、多行注释、文档注释。单行注释:注释某一行代码。使用//多行注释:注释某一段代码。使用/*...*/文档注释:用于生成JAVA文档。使用/**...*/二、自增自减运算符++是自增运算符,—是自减运算符,如果放在变量后面,代表是先给变量赋值,再自曾/减1,如果放在变量前面,代表变量先自曾/减1,再赋值给变量。三、JAVA中的continue、break、return之间的区别continue:是指结束或者跳出当前循环,继续下一次循环。break:是指结束循环,整个循环体结束,不会再执行下次循环。return:如果直接return
JAVA常见基础知识点一、注释Java中有三种注释,分别是单行注释、多行注释、文档注释。单行注释:注释某一行代码。使用//多行注释:注释某一段代码。使用/*...*/文档注释:用于生成JAVA文档。使用/**...*/二、自增自减运算符++是自增运算符,—是自减运算符,如果放在变量后面,代表是先给变量赋值,再自曾/减1,如果放在变量前面,代表变量先自曾/减1,再赋值给变量。三、JAVA中的continue、break、return之间的区别continue:是指结束或者跳出当前循环,继续下一次循环。break:是指结束循环,整个循环体结束,不会再执行下次循环。return:如果直接return
Java异常处理目录Java异常处理一、异常概述与异常体系结构1.1Java引入异常的原因:1.2异常的概念:1.3Java中的异常事件的分类:二、常见异常三、Java异常处理机制:3.1简介:3.2Java异常处理机制之一:try-catch-finally3.3Java异常处理机制之二:throws+异常类型四、手动抛出异常(throw)五、用户自定义异常类一、异常概述与异常体系结构1.1Java引入异常的原因:在进行项目开发的过程中,即使程序员把代码写得完美,在系统的运行过程中仍然会遇到一些问题,因为很多问题不是靠代码能够避免的,比如:客户输入数据的格式,读取文件是否存在,网络是否始终保
Java异常处理目录Java异常处理一、异常概述与异常体系结构1.1Java引入异常的原因:1.2异常的概念:1.3Java中的异常事件的分类:二、常见异常三、Java异常处理机制:3.1简介:3.2Java异常处理机制之一:try-catch-finally3.3Java异常处理机制之二:throws+异常类型四、手动抛出异常(throw)五、用户自定义异常类一、异常概述与异常体系结构1.1Java引入异常的原因:在进行项目开发的过程中,即使程序员把代码写得完美,在系统的运行过程中仍然会遇到一些问题,因为很多问题不是靠代码能够避免的,比如:客户输入数据的格式,读取文件是否存在,网络是否始终保
抽象类抽象类和普通类没什么大的差异,抽象类不能被实例化,必须用abstarct修饰,权限修饰符只能是public/protected类型;如果不写权限修饰符,则它默认就是public类型的。抽象类必须被继承才能实例化,所以它不能被final修饰。因为被final修饰的类不能被继承,被final修饰的方法不能被重写。抽象类被继承时,子类要重写父类的抽象方法,否则也只能将子类定义为抽象类。publicabstactvoidgetA();抽象类体现的是模板思想,在抽象类中已经实现了的成员就是模板。finalfinal:表示最终的,可以修饰类、方法、属性修饰变量,有且仅能被赋值一次。:修饰静态成员变量
抽象类抽象类和普通类没什么大的差异,抽象类不能被实例化,必须用abstarct修饰,权限修饰符只能是public/protected类型;如果不写权限修饰符,则它默认就是public类型的。抽象类必须被继承才能实例化,所以它不能被final修饰。因为被final修饰的类不能被继承,被final修饰的方法不能被重写。抽象类被继承时,子类要重写父类的抽象方法,否则也只能将子类定义为抽象类。publicabstactvoidgetA();抽象类体现的是模板思想,在抽象类中已经实现了的成员就是模板。finalfinal:表示最终的,可以修饰类、方法、属性修饰变量,有且仅能被赋值一次。:修饰静态成员变量