metaball公式_参数化人体模型.pdf

参数化人体模型.pdf

摘 要

由三维信息重构三维物体是计算机辅助设计研究的热点问题。它在地形重

构、服装设计、医学CT图像三维重建等领域有着广阔的应用前景。本课题的研

究以国家自然科学基金项目 三《维服装动力模型研究》为背景,是其中的一个子

模块。

本文主要研究人体模型的重建方法,提出了一种基于三维扫描点云的人体重

建方案。在综述该方案的同时,给出了流程设计的总体框架、文件存储格式、每

个步骤的具体实现方法及细则。本文对比了现时三维造型方法的优劣,介绍了一

般三维人体建模过程。在论述过程中,本文提出一种平面迭代简化规则对模型简

化。在人体模型参数化设计部分,本文通过对比各种样条插值算法的优劣,最后

选用Cardinal样条插值对人体模型进行参数化处理。本文还运用Graham凸包算

法实现对人体模型部分特征数据的动态测量,为服装CAD设计提供一个可按需要

变化的人体模型,使服装设计能模拟出在不同身材人身上的试穿效果。最后,本

文还指出进一步改进的方向。本文用作实验的数据来源于西北纺织学院人体扫描

仪对真实人体扫描输出的点云数据。扫描对象为一个30岁左右的中年女子,数

据具有真实性且有研究价值。

本文所附程序在Windows平台上采用VisualC++和OpenGL编写,数据采用

WavefrontOBJ格式存储,程序实现了人体重建与参数化过程,对人体部分特征

数据进行了测量,并采用Phong光照模型对模型进行渲染。

关键词:人体模型、点云分割、点云简化、参数化设计、三维信息重构、计算机

辅助设计

3DPointCloudBasedHumanModelParameterization

Major:ComputerSoftwareandTheory

Name:WeiWeiShu

Supervisor:ProfessorLuoXiaoNan

DoctorGaoChengYing

Abstract

Thetechniqueofreconstructinganobjectfrom3Dinformationishot

spotofCAD(ComputerAidedDesign).Ithaspromisingprospectinthefield

ofterrainreconstruction,fashiondesignandreconstructionfromCT

image.Theresearchissub-itemoftheNationalNatureScienceFund

subject, "Researchon3DGarmentDynamicsModel".

In thispaper,wemainly discussthe courseofhuman model

reconstructionfrompointcloudandbringaboutaplanarsimplification

approach.Whendiscussingtheplan,wegiveamainframeofflowdesign,

formatofobjectfileanddetailmethodofeverystep.Thedissertation

doestheresearchingofcomparingthestrongpointandweaknessofdiverse

3Dplasticmethodandintroducinggeneralmodelingcourse.Duringthe

courseofdissertating,aplaneiterationsimplificationmethodhasbeen

broughtforward.ThedissertationchoosesCardinalSplinemethodtodo

theparameterizationofhumanmodelaftercompareddifferentkindsof

methods.Andalso,thedissertationuseGrahamarithmetictocompute

convexhull.ItprovidestheGarmentDesignCADsoftwareahumanmodel

thatc

三维人体模型的建模方法是三维虚拟试衣系统中的关键技术,人体的建模方法 直接影响后期三维服装模拟实现的难易程度和表现效果,并且现在服装 CAD(Computer Aided Design)发展的趋势也是三维的,因此研究三维服装人体模型的建模方法具有广泛的研究价值和应用前景。本文对参数化三维人体建模技术进行研究,主要研究内容如下。 分析了当前三维人体数据的获取方法。根据三维虚拟试衣系统本身的特点,以 及目前系统实施的可行性,提出采用服装行业传统的接触式测量方法和标准人体模 板库相结合的方法来实现个性化三维人体建模。为了保证人体模型的精确性,用户 除了提供胸围、腰围、臀围、身高等一般数据外,还可以增加测量人体附加特征尺 寸,例如胸部宽度、胸部厚度、乳间距、乳高、臀厚等特征尺寸,这样就使系统重 建的三维人体模型更加生动、逼真。 构建人体库前必须得获取人体三维数据。由于条件的限制,本文利用专业的三 维人体造型软件 Poser 6.0 自带的人体模型,将其导出为 3DS 文件,再利用计算机 程序读取 3DS 文件提取有用的人体表面顶点信息。本文对 3DS 文件的相关格式也 作了简单的介绍。 三维人体的建模方法很多,具体来说有线框建模、曲面建模、实体建模和基于 物理的建模等。本文根据三维虚拟试衣系统要求人体尺寸精确、人体模型形象逼真、 容易修改等特点,采用在 VC++开发环境和 OpenGL 三维图形软件包下利用小三角 面片逼近人体表面来重构人体模型。因为从造型软件导入的人体数据,数据点多且 分布散乱,这样不利于后期人体模型根据特征尺寸变形以及服装的试穿,会增加运 算量和复杂度。具体做法是首先根据人体的生理形态特征,将人体分成了很多部件, 然后根据曲率变化,进行数据点的采样,曲率大的地方,采样点多一些,曲率小的, 采样点少,并把采样点按照分部件、分层存储起来。人体建模时采用轮廓同步前进 法绘制三角片,从而得到比较光滑的人体曲面
Shader "FancyScrollViewGallery/Metaball" { Properties { [PerRendererData] _MainTex ("Sprite Texture", 2D) = "white" {} _Color ("Tint", Color) = (1,1,1,1) _StencilComp ("Stencil Comparison", Float) = 8 _Stencil ("Stencil ID", Float) = 0 _StencilOp ("Stencil Operation", Float) = 0 _StencilWriteMask ("Stencil Write Mask", Float) = 255 _StencilReadMask ("Stencil Read Mask", Float) = 255 _ColorMask ("Color Mask", Float) = 15 [Toggle(UNITY_UI_ALPHACLIP)] _UseUIAlphaClip ("Use Alpha Clip", Float) = 0 } CGINCLUDE #include "UnityCG.cginc" #include "UnityUI.cginc" #include "../Common/Common.cginc" #include "Metaball.hlsl" #pragma multi_compile __ UNITY_UI_CLIP_RECT #pragma multi_compile __ UNITY_UI_ALPHACLIP struct appdata_t { float4 vertex : POSITION; float4 color : COLOR; float2 texcoord : TEXCOORD0; UNITY_VERTEX_INPUT_INSTANCE_ID }; struct v2f { float4 vertex : SV_POSITION; fixed4 color : COLOR; float2 uiCoord : TEXCOORD0; float4 worldPosition : TEXCOORD1; UNITY_VERTEX_OUTPUT_STEREO }; sampler2D _MainTex; fixed4 _Color; fixed4 _TextureSampleAdd; float4 _ClipRect; float4 _MainTex_ST; v2f vert(appdata_t v) { v2f OUT; UNITY_SETUP_INSTANCE_ID(v); UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(OUT); OUT.worldPosition = v.vertex; OUT.vertex = UnityObjectToClipPos(OUT.worldPosition); OUT.uiCoord = ui_coord(TRANSFORM_TEX(v.texcoord, _MainTex)); OUT.color = v.color * _Color; return OUT; } fixed4 frag(v2f i) : SV_Target { half4 color = metaball(i.uiCoord); color += _TextureSampleAdd; color *= i.color; #ifdef UNITY_UI_CLIP_RECT color.a *= UnityGet2DClipping(i.worldPosition.xy, _ClipRect); #endif #ifdef UNITY_UI_ALPHACLIP clip(color.a - 0.001); #endif return color; } ENDCG SubShader { Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" "PreviewType"="Plane" "CanUseSpriteAtlas"="True" } Stencil { Ref [_Stencil] Comp [_StencilComp] Pass [_StencilOp] ReadMask [_StencilReadMask] WriteMask [_StencilWriteMask] } Cull Off Lighting Off ZWrite Off ZTest [unity_GUIZTestMode] Blend SrcAlpha OneMinusSrcAlpha ColorMask [_ColorMask] Pass { Name "Default" CGPROGRAM #pragma vertex vert #pragma fragment frag #pragma target 2.0 ENDCG } } }
06-07
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值