crystalai's picture
Upload 11 files
03e3e7f verified
raw
history blame
21.3 kB
<!DOCTYPE html>
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Wavefront OBJ &mdash; Blender Manual</title>
<link rel="shortcut icon" href="../_static/favicon.ico"/>
<link rel="canonical" href="https://docs.blender.org/manual/en/latest/addons/io_scene_obj.html"/>
<script type="text/javascript" src="../_static/js/modernizr.min.js"></script>
<script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script type="text/javascript" src="../_static/jquery.js"></script>
<script type="text/javascript" src="../_static/underscore.js"></script>
<script type="text/javascript" src="../_static/doctools.js"></script>
<script type="text/javascript" src="../_static/language_data.js"></script>
<script type="text/javascript" src="../_static/js/version_switch.js"></script>
<script async="async" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/latest.js?config=TeX-AMS-MML_HTMLorMML"></script>
<script type="text/javascript" src="../_static/js/theme.js"></script>
<link rel="search" type="application/opensearchdescription+xml"
title="Search within Blender Manual"
href="../_static/opensearch.xml"/>
<link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../_static/css/theme_overrides.css" type="text/css" />
<link rel="alternate" hreflang="en" href="https://docs.blender.org/manual/en/latest/">
<link rel="alternate" hreflang="de" href="https://docs.blender.org/manual/de/latest/">
<link rel="alternate" hreflang="es" href="https://docs.blender.org/manual/es/latest/">
<link rel="alternate" hreflang="fi" href="https://docs.blender.org/manual/fi/latest/">
<link rel="alternate" hreflang="fr" href="https://docs.blender.org/manual/fr/latest/">
<link rel="alternate" hreflang="it" href="https://docs.blender.org/manual/it/latest/">
<link rel="alternate" hreflang="ja" href="https://docs.blender.org/manual/ja/latest/">
<link rel="alternate" hreflang="ko" href="https://docs.blender.org/manual/ko/latest/">
<link rel="alternate" hreflang="nb" href="https://docs.blender.org/manual/nb/latest/">
<link rel="alternate" hreflang="pt" href="https://docs.blender.org/manual/pt/latest/">
<link rel="alternate" hreflang="ru" href="https://docs.blender.org/manual/ru/latest/">
<link rel="alternate" hreflang="sl" href="https://docs.blender.org/manual/sl/latest/">
<link rel="alternate" hreflang="sr" href="https://docs.blender.org/manual/sr/latest/">
<link rel="alternate" hreflang="uk" href="https://docs.blender.org/manual/uk/latest/">
<link rel="alternate" hreflang="vi" href="https://docs.blender.org/manual/vi/latest/">
<link rel="alternate" hreflang="zh-Hans" href="https://docs.blender.org/manual/zh-hans/latest/">
<link rel="alternate" hreflang="zh-Hant" href="https://docs.blender.org/manual/zh-hant/latest/">
<link rel="alternate" hreflang="x-default" href="https://docs.blender.org/manual/en/latest/">
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="Web3D X3D/VRML2" href="io_scene_x3d.html" />
<link rel="prev" title="glTF 2.0" href="io_scene_gltf2.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="../index.html" class="icon icon-home"> Blender 2.80 Manual
<img src="../_static/blender-logo.svg" class="logo" alt="Logo"/>
</a>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../getting_started/index.html">Getting Started</a></li>
<li class="toctree-l1"><a class="reference internal" href="../interface/index.html">User Interface</a></li>
<li class="toctree-l1"><a class="reference internal" href="../editors/index.html">Editors</a></li>
<li class="toctree-l1"><a class="reference internal" href="../scene_layout/index.html">Scenes &amp; Objects</a></li>
<li class="toctree-l1"><a class="reference internal" href="../modeling/index.html">Modeling</a></li>
<li class="toctree-l1"><a class="reference internal" href="../sculpt_paint/index.html">Sculpting &amp; Painting</a></li>
<li class="toctree-l1"><a class="reference internal" href="../grease_pencil/index.html">Grease Pencil</a></li>
<li class="toctree-l1"><a class="reference internal" href="../animation/index.html">Animation &amp; Rigging</a></li>
<li class="toctree-l1"><a class="reference internal" href="../physics/index.html">Physics</a></li>
<li class="toctree-l1"><a class="reference internal" href="../render/index.html">Rendering</a></li>
<li class="toctree-l1"><a class="reference internal" href="../compositing/index.html">Compositing</a></li>
<li class="toctree-l1"><a class="reference internal" href="../movie_clip/index.html">Tracking &amp; Masking</a></li>
<li class="toctree-l1"><a class="reference internal" href="../video_editing/index.html">Video Editing</a></li>
<li class="toctree-l1"><a class="reference internal" href="../files/index.html">Files &amp; Data System</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="index.html">Add-ons</a><ul class="current">
<li class="toctree-l2 current"><a class="reference internal" href="index.html#import-export">Import-Export</a><ul class="current">
<li class="toctree-l3"><a class="reference internal" href="io_anim_bvh.html">BioVision Motion Capture (BVH)</a></li>
<li class="toctree-l3"><a class="reference internal" href="io_curve_svg.html">Scalable Vector Graphics (SVG)</a></li>
<li class="toctree-l3"><a class="reference internal" href="io_mesh_ply.html">Stanford PLY</a></li>
<li class="toctree-l3"><a class="reference internal" href="io_mesh_stl.html">STL</a></li>
<li class="toctree-l3"><a class="reference internal" href="io_mesh_uv_layout.html">UV Layout</a></li>
<li class="toctree-l3"><a class="reference internal" href="io_scene_fbx.html">FBX</a></li>
<li class="toctree-l3"><a class="reference internal" href="io_scene_gltf2.html">glTF 2.0</a></li>
<li class="toctree-l3 current"><a class="current reference internal" href="#">Wavefront OBJ</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#usage">Usage</a></li>
<li class="toctree-l4"><a class="reference internal" href="#properties">Properties</a></li>
<li class="toctree-l4"><a class="reference internal" href="#compatibility">Compatibility</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="io_scene_x3d.html">Web3D X3D/VRML2</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="index.html#render">Render</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../advanced/index.html">Advanced</a></li>
<li class="toctree-l1"><a class="reference internal" href="../troubleshooting/index.html">Troubleshooting</a></li>
<li class="toctree-l1"><a class="reference internal" href="../glossary/index.html">Glossary</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../about/index.html">About this Manual</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
<nav class="wy-nav-top" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../index.html">Blender 2.80 Manual</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="../index.html">Docs</a> &raquo;</li>
<li><a href="index.html">Add-ons</a> &raquo;</li>
<li>Wavefront OBJ</li>
<li class="wy-breadcrumbs-aside">
<a href="../_sources/addons/io_scene_obj.rst.txt" rel="nofollow"> View page source</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<div class="section" id="wavefront-obj">
<h1>Wavefront OBJ<a class="headerlink" href="#wavefront-obj" title="Permalink to this headline"></a></h1>
<div class="refbox admonition">
<p class="first admonition-title">Reference</p>
<table class="last docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Category:</th><td class="field-body">Import-Export</td>
</tr>
<tr class="field-even field"><th class="field-name">Menu:</th><td class="field-body"><span class="menuselection">File ‣ Import/Export ‣ Wavefront (.obj)</span></td>
</tr>
</tbody>
</table>
</div>
<p>OBJ is a widely used de facto standard in the 3D industry.
The OBJ format is a popular plain text format, however, it has only basic geometry and material support.</p>
<ul class="simple">
<li>Mesh: vertices, faces, edges, normals, UV’s</li>
<li>Separation by groups/objects</li>
<li>Materials/textures</li>
<li>NURBS curves and surfaces</li>
</ul>
<div class="admonition note">
<p class="first admonition-title">Note</p>
<p class="last">There is no support for mesh vertex colors, armatures, animation,
lights, cameras, empty objects, parenting, or transformations.</p>
</div>
<div class="admonition warning">
<p class="first admonition-title">Warning</p>
<ul class="last simple">
<li>Importing very large OBJ-files (over a few 100mb), can use a lot of RAM.</li>
<li>OBJ’s export using Unix line endings <code class="docutils literal notranslate"><span class="pre">\n</span></code> even on windows,
if you open the files in a text editor it must recognize <code class="docutils literal notranslate"><span class="pre">\n</span></code> line endings.</li>
</ul>
</div>
<div class="section" id="usage">
<h2>Usage<a class="headerlink" href="#usage" title="Permalink to this headline"></a></h2>
<p>Import/Export geometry and curves to the OBJ format.</p>
<p>If there is a matching <code class="docutils literal notranslate"><span class="pre">.MTL</span></code> for the OBJ then its materials will be imported too.</p>
</div>
<div class="section" id="properties">
<h2>Properties<a class="headerlink" href="#properties" title="Permalink to this headline"></a></h2>
<div class="section" id="import">
<h3>Import<a class="headerlink" href="#import" title="Permalink to this headline"></a></h3>
<dl class="docutils">
<dt>Smooth Groups</dt>
<dd>Surround OBJ smooth groups by sharp edges.
Note that these will only be displayed when the Edge Split modifier is enabled.</dd>
<dt>Lines</dt>
<dd>Import OBJ lines and two-sided faces as mesh edges.</dd>
<dt>Split/Keep Vertex Order</dt>
<dd>When importing an OBJ it’s useful to split up the objects into Blender objects,
named according to the OBJ-file. However, this splitting looses the vertex order which
is needed when using OBJ-files as morph targets. It also looses any vertices that
are not connected to a face so this must be disabled if you want to keep the vertex order.</dd>
<dt>Split by Object &amp; Split by Group</dt>
<dd><p class="first">When importing an OBJ it’s useful to split up the objects into Blender objects,
named according to the OBJ-file. However, this splitting looses the vertex order which
is needed when using OBJ-files as morph targets. It also looses any vertices that
are not connected to a face, so this must be disabled if you want to keep the vertex order.</p>
<p class="last">As far as Blender is concerned OBJ Objects and Groups are no difference,
since they are just two levels of separation,
the OBJ groups are not equivalent to Blender groups, so both can optionally be used for splitting.</p>
</dd>
<dt>Clamp Size</dt>
<dd>OBJ-files often vary greatly in scale, this setting clamps the imported file to a fixed size.</dd>
<dt>Forward / Up Axis</dt>
<dd><p class="first">Since many applications use a different axis for ‘Up’, these are axis conversion for these settings,
Forward and Up axes – By mapping these to different axes you can convert rotations
between applications default up and forward axes.</p>
<p class="last">Blender uses Y Forward, Z Up (since the front view looks along the +Y direction).
For example, it’s common for applications to use Y as the up axis, in that case -Z Forward, Y Up is needed.</p>
</dd>
<dt>Image Search</dt>
<dd>This enables a recursive file search if an image file can’t be found.</dd>
</dl>
</div>
<div class="section" id="export">
<h3>Export<a class="headerlink" href="#export" title="Permalink to this headline"></a></h3>
<dl class="docutils">
<dt>Selected Objects</dt>
<dd>Only export the selected objects. Otherwise export all objects in the scene.</dd>
<dt>Animation</dt>
<dd>Exports a numbered OBJ for each frame from the start to the end frame.
Please be aware that this can take quite a long time.</dd>
<dt>Apply Modifiers</dt>
<dd>Export mesh objects as seen in the 3D Viewport with all modifiers applied.
Mostly you will want this unless you are exporting a subdivision surface cage.</dd>
<dt>Edges</dt>
<dd>Export loose edges as two-sided faces. Mostly there is no need for this
but it’s enabled by default to ensure all geometry data is exported.</dd>
<dt>Normals</dt>
<dd><p class="first">Write out Blender’s face and vertex normals (depending on the faces smooth setting).</p>
<p class="last">Mostly this isn’t needed since most applications will calculate their
own normals but to match Blender’s normal map textures you will need to write these too.</p>
</dd>
<dt>UVs</dt>
<dd>Write out the active UV layers coordinates from Blender.</dd>
<dt>Materials</dt>
<dd>Write out the MTL-file along with the OBJ. Most importers that support OBJ will also read the MTL-file.</dd>
<dt>Triangulate</dt>
<dd>Write out quads as two triangles. Some programs only have very basic OBJ support and only support triangles.</dd>
<dt>Polygroups</dt>
<dd>Write faces into OBJ groups based on the meshes vertex group.
Note that this does a best guess since a face’s vertices can be in multiple vertex groups.</dd>
<dt>NURBS</dt>
<dd>Write out NURBS curves as OBJ NURBS rather than converting to geometry.</dd>
<dt>Objects as OBJ Objects / Groups</dt>
<dd><p class="first">Write out each Blender object as an OBJ object.</p>
<div class="last admonition note">
<p class="first admonition-title">Note</p>
<p class="last">Note that as far as Blender is concerned there is no difference between OBJ Groups and Objects,
this option is only included for applications which treat them differently.</p>
</div>
</dd>
<dt>Material Groups</dt>
<dd>Create OBJ groups per material.</dd>
<dt>Keep Vertex Order</dt>
<dd>Maintain vertex order on export. This is needed when OBJ is used for morph targets.</dd>
<dt>Scale</dt>
<dd>Global scale to use on export.</dd>
<dt>Forward / Up Axis</dt>
<dd><p class="first">Since many applications use a different axis for ‘Up’, there are axis conversion there settings,
Forward and Up axis – By mapping these to different axis you can convert rotations
between applications default up and forward axis.</p>
<p class="last">Blender uses Y Forward, Z Up (since the front view looks along the +Y direction).
For example, its common for applications to use Y as the up axis, in that case -Z Forward, Y Up is needed.</p>
</dd>
<dt>Path Mode</dt>
<dd><p class="first">When referencing paths in exported files you may want some control as to the method used since absolute paths
may only be correct on you’re own system. Relative paths on the other hand are more portable
but mean you have to keep your files grouped when moving about on your local file system.
In some cases the path doesn’t matter since the target application will search
a set of predefined paths anyway so you have the option to strip the path too.</p>
<table class="last docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Auto:</th><td class="field-body">Uses relative paths for files which are in a subdirectory of the exported location,
absolute for any directories outside that.</td>
</tr>
<tr class="field-even field"><th class="field-name">Absolute:</th><td class="field-body">Uses full paths.</td>
</tr>
<tr class="field-odd field"><th class="field-name">Relative:</th><td class="field-body">Uses relative paths in every case (except when on a different drive on windows).</td>
</tr>
<tr class="field-even field"><th class="field-name">Match:</th><td class="field-body">Uses relative / absolute paths based on the paths used in Blender.</td>
</tr>
<tr class="field-odd field"><th class="field-name">Strip Path:</th><td class="field-body">Only write the filename and omit the path component.</td>
</tr>
<tr class="field-even field"><th class="field-name">Copy:</th><td class="field-body">Copy the file on exporting and reference it with a relative path.</td>
</tr>
</tbody>
</table>
</dd>
</dl>
</div>
</div>
<div class="section" id="compatibility">
<h2>Compatibility<a class="headerlink" href="#compatibility" title="Permalink to this headline"></a></h2>
<p>NURBS surfaces, text3D and metaballs are converted to meshes at export time.</p>
<div class="section" id="missing">
<h3>Missing<a class="headerlink" href="#missing" title="Permalink to this headline"></a></h3>
<p>Some of the following features are missing:</p>
<ul class="simple">
<li>NURBS Surfaces – this could be added but is not widely used.</li>
<li>Advanced Material Settings – There are material options documented
but very few files use them and there are few examples available.</li>
<li>Normals – Blender ignores normals from imported files, recalculating them based on the geometry.</li>
</ul>
</div>
</div>
</div>
</div>
</div>
<footer>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="io_scene_x3d.html" class="btn btn-neutral float-right" title="Web3D X3D/VRML2" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="io_scene_gltf2.html" class="btn btn-neutral float-left" title="glTF 2.0" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
</div>
<hr/>
<div role="contentinfo">
<p>
&copy; Copyright : This page is licensed under a CC-BY-SA 4.0 Int. License
</p>
</div>
</footer>
</div>
</div>
</section>
</div>
<div class="rst-versions" data-toggle="rst-versions" role="note" aria-label="document versions">
<ul id="versionwrap" role="presentation">
<li style="float:left" role="presentation">
<span id="version-dropdown" class="version-btn" tabindex="0" role="button" aria-label="versions selector" aria-haspopup="true" aria-controls="version-vsnlist" aria-disabled="true">
2.80
</span>
<ul id="version-vsnlist" class="version-list" role="menu" aria-labelledby="version-dropdown" aria-hidden="true">
<li role="presentation">Loading...</li>
</ul>
</li>
<li style="float:right" role="presentation">
<span id="lang-dropdown" class="version-btn" tabindex="0" role="button" aria-label="language selector" aria-haspopup="true" aria-controls="version-langlist">
en
</span>
<ul id="version-langlist" class="version-list" role="menu" aria-labelledby="lang-dropdown" aria-hidden="true">
<li role="presentation">Loading...</li>
</ul>
</li>
</ul>
</div>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
<script>
window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date;
ga('create', 'UA-1418081-1', 'auto');
ga('send', 'pageview');
</script>
<script async src='https://www.google-analytics.com/analytics.js'></script>
</body>
</html>