gpt4 book ai didi

c++ - 3DS 模型加载 - 树/层次结构

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:00:57 25 4
gpt4 key购买 nike

我在这里使用的是 3DS 加载器:

http://www.flipcode.com/archives/Another_3DS_LoaderViewer_Class.shtml

它在加载和渲染模型方面做得很好,但是它缺乏任何层次感。因此,模型中的所有对象都在原点呈现。

在下面的代码中:void Model_3DS::MainChunkProcessor(long length, long findex) 是一行:

// I left this in case anyone gets very ambitious
case KEYF3DS :
//KeyFrameChunkProcessor(h.len, ftell(bin3ds));
break;

没有人在任何地方实现过这个,我也没有看到任何其他实现它的 3DS 加载器。人们似乎只会发帖,直到他们对屏幕上呈现的任何内容都感到满意为止。

KeyFrameChunkProcessor 会是什么样子?

最佳答案

谷歌引导我 here :

Keyframer chunk
---------------

id Description
---- -----------
B00A unknown
7001 See first description of this chunk
B008 Frames
B009 unknown
B002 Start object description

* B008 - Frame information

simple structure describing frame info

start end size type name
0 3 4 unsigned long start frame
4 7 4 unsigned long end frame

*B002 - Start of Object info

Subhunks

id Description
---- -----------
B010 Name & Hierarchy
B011* Name Dummy Object
B013 unknown
B014* unknown
B015 unknown
B020 Objects pivot point ?
B021 unknown
B022 unknown
B030 unknown

* B010 - Name & Hierarchy descriptor

start end size type name
0 ? ? ASCIIZ Object name
? ? ? unsigned int unknown
? ? ? unsigned int unknown
? ? ? unsigned int Hierarchy of Object

The object hierarchy is a bit complex but works like this.
Each Object in the scene is given a number to identify its
order in the tree. Also each object is orddered in the 3ds
file as it would appear in the tree.
The root object is given the number -1 ( FFFF ).
As the file is read a counter of the object number is kept.
Is the counter increments the object are children of the
previous objects.But when the pattern is broken by a number
what will be less than the current counter the hierarchy returns
to that level.

for example.

object hierarchy
name

A -1
B 0 This example is taken
C 1 from 50pman.3ds
D 2
E 1 I would really reccomend
F 4 having a look at one of the
G 5 examples with the hierarchy
H 1 numbers to help work it out.
I 7
J 8
K 0
L 10
M 11
N 0
O 13
P 14


A
+-----------------+----------------+
B K N
+----+----+ + +
C E H L O
+ + + + +
D F I M P
+ +
G J

Still not done with this chunk yet !
If the object name is $$$DUMMY then it is a dummy object
and therefore you should expect a few extra chunks.

关于c++ - 3DS 模型加载 - 树/层次结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2315423/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com