Error evaluating alembic file

Error evaluating alembic file I’m trying to embed an alembic in a digital asset. I can’t figure out how to reference it inside the digital asset. I’ve attached an example. In that example asset are embedded a test.bgeo and a test.abc. I can reference the .bgeo with a file node pointing to “opdef../. test.bgeo”.If […]

Содержание

  1. Error evaluating alembic file
  2. Error evaluating alembic file
  3. Error evaluating alembic file
  4. Создаем начальную миграцию с alembic для существующей базы
  5. Alembic Export Options
  6. General Options
  7. Cache Time Ranges
  8. Attributes
  9. Attribute Prefix
  10. Advanced Options
  11. Callbacks

Error evaluating alembic file

I’m trying to embed an alembic in a digital asset. I can’t figure out how to reference it inside the digital asset. I’ve attached an example.

In that example asset are embedded a test.bgeo and a test.abc.
I can reference the .bgeo with a file node pointing to “opdef../. test.bgeo”.
If I try it with a alembic node pointing to “opdef../. test.abc” I get an “error evaluating alembic”. If i reference the alembic from an external source it works, so I don’t think the alembic itself is the problem.

can someone tell me what’s going on there?

I’m trying to embed an alembic in a digital asset. I can’t figure out how to reference it inside the digital asset. I’ve attached an example.

In that example asset are embedded a test.bgeo and a test.abc.
I can reference the .bgeo with a file node pointing to “opdef. /. test.bgeo”.
If I try it with a alembic node pointing to “opdef. /. test.abc” I get an “error evaluating alembic”. If i reference the alembic from an external source it works, so I don’t think the alembic itself is the problem.

can someone tell me what’s going on there?

This works for me (try the attached). Using an Alembic SOP, I can access the file using
opdefop/abccontent?subd.abc

Note that for this to work, the Alembic has to be saved in Ogawa format.

Источник

Error evaluating alembic file

I have this small, but working pipeline in Maya with Alembic files.
Animation is cached out, and imported back in. Than shading and rendering is set up.

But I cannot seem to import any of these Alembic files into Houdini 15.5.
I get a warning right away about not being able to evaluate the file.

tried every setting in the node, but no luck. Tried to find answers here, but so far no luck.
Is there a certain way to write out Alembic files for Houdini from Maya?

Yes, I am.
This works for other 3D apps, not sure why Houdini is throwing me an error.

We normally have the geo inside a little hierarchy when exported, and is imported back into the same structure.
Maybe that is the problem here?

Edit: Just to add, it’s Maya 2016SP5 on Win7

Edit2: Copied some of the alembic files to the desktop to see what happens, and it works. I can load both Ogawa and hdf5 files from there. So it’s something network related, and it looks like Houdini cannot find the path or something.
One down, one to go 😉

Back at this.
Houdini refuses to import any files, Alembic and/or FBX, from server locations. We checked all relevant rights on folders and files, and there’s no problem there. It doesn’t matter if the files are inside, or outside the project structure.

We tried the File>Import route, and the direct approach of getting a Alembic/File node and loading the file from there.
In all cases we get an error in Houdini.

The File>Import route gives me a ‘Import failed, ZProjectsGoatcachesgoat.abc does not exist’
The direct approach with a node gives a ‘Error: Unable to read file “ZProjectsGoatcachesgoat.abc”’

Also, when browsing to the cache files, they are all grayed out, until you check the sequence box. Than you can select Alembic files with a number in the name.

Источник

Error evaluating alembic file

Can confirm with the attached file for version 3.0.0 ( rB2d146b61d85)

Could you please add the steps to recreate the scene?

From scratch I can not reproduce.

You need to use the kind of geometry nodes set up that is in the .blend file There are cases where it exports, and in some other cases it cant. I attached the one that it can’t export.

Hi @kursad k (kursadk) , I am not able to reproduce from scratch

This is because the source collection is disabled for rendering (Camera icon in the Outliner).
@Pratik Borhade (PratikPB2123) : if you do this in your file it will «fail» as well.

Alembic always evaluates the depsgraph in render mode, so that might make a bit of sense, otoh, this is is not the setting on the object to export, so not sure here actually.
@Jacques Lucke (JacquesLucke) , @Sybren A. Stüvel (sybren) : is this expected behavior?

Bear in mind we are only exporting the object with the geometry nodes mod, the resulting import should be a single combined mesh

I’m not entirely sure about this. Note that in geometry nodes the collection is still treated as an instance until it is realized (which doesn’t happen here currently). Sometimes it makes sense to create a combined mesh from all the instances and sometimes it doesn’t. I’m not sure how alembic generally handles instances.
You could force geometry nodes to combine the instances into a single mesh e.g. by using an Attribute Fill after the Collection Info node. Check the spreadsheet to see what data you are working with. Note, you might run into issues related to T89054 when making the instances real, e.g. the uv layers don’t work as you expect anymore.

When rendering the file from the report description, I also don’t see anything in the camera view. This means that the Alembic exporter is doing the expected thing. However, when I apply D11820: Alembic export: evaluation mode option and export with Viewport evaluation, things don’t export well. I do see a marked-as-invisible Suzanne (the original, invisible object), but the geometry spawned by the geometry nodes is missing. It does contain the transform, though:

You could force geometry nodes to combine the instances into a single mesh e.g. by using an Attribute Fill after the Collection Info node.

So I guess that Geometry Nodes modifier doesn’t actually produce an evaluated mesh that contains the entire geometry. Do I guess correctly?

You could force geometry nodes to combine the instances into a single mesh e.g. by using an Attribute Fill after the Collection Info node.

So I guess that Geometry Nodes modifier doesn’t actually produce an evaluated mesh that contains the entire geometry. Do I guess correctly?

I can confirm this. See the video below Create duplicate for editing (which I used in the video) comes with the corrrective shapekeys addon and creates a duplicate by evaluating the graph.

Bear in mind we are only exporting the object with the geometry nodes mod, the resulting import should be a single combined mesh

I’m not entirely sure about this. Note that in geometry nodes the collection is still treated as an instance until it is realized (which doesn’t happen here currently). Sometimes it makes sense to create a combined mesh from all the instances and sometimes it doesn’t. I’m not sure how alembic generally handles instances.
You could force geometry nodes to combine the instances into a single mesh e.g. by using an Attribute Fill after the Collection Info node. Check the spreadsheet to see what data you are working with. Note, you might run into issues related to T89054 when making the instances real, e.g. the uv layers don’t work as you expect anymore.

Well forcing with an additional node destroys the UVs completely. And for multiple meshes (from a collection node ) like that there is not an easy way to get those uvs back on the resulting mesh. See the video please.

Источник

Создаем начальную миграцию с alembic для существующей базы

Не так давно я пришел на проект, где пользовали SQLAlchermy и Alembic. Но по воле рока так случилось, что alembic подключили после того, как создали в базе кучу объектов. Для тех, кто не в курсе, SQLAlchemy — это библиотека и ORM для питона, а Alembic — это инстумент для работы с миграциями для SQLAlchemy.

Мы захотели научиться делать 2 вещи: создавать базу с нуля прогоняя миграции и генерить миграции автоматом. Для начала создадим начальную миграцию, от которой и будем уже потом генерить последующие миграции автоматом.

Начнем с моделей. В статье я публиковать модели из проекта не буду, а определю довольно простенькие модели пользователей, публикаций и комментов в каком-нибудь блоге. Создадим файл db.py в корне проекта со следующим содержанием.

Для нашего случая можно предполагать, что все эти объекты уже есть в базе.

Подключаем и настраиваем алембик:

В файле alembic.ini указываем адрес базы:

В файле migration/env.py импортируем все модели и указываем target_metadata:

В самом простом случае у нас есть строгое соответствие между объектами, которые есть базе и моделями. В этом случае можно просто создать пустую базу и попросить алебмик создать миграцию для этой базы, на основе моделей и он как раз создаст нужную нам началную миграцию, и уже от этой миграции и плясать, переключившись на основную базу.

Генерим миграцию, не забыв перед этим указать правильное имя базы в настройках.

На выходе получаем migration/versions/8cb9616d5ef0_initial.py :

Теперь возвращаем настройки и вуа-ля, у нас есть initial миграция, от которой алембик будет генерить миграции автоматом и прогоняя этот набор миграций можно создать базу с нуля. Для автотетов тестов, к примеру.

Это был самый простой случай. Теперь рассмотрим ситуцию, когда в базе есть объекты, которые не определены на уровне моделей, к примеру хранимые процедуры, представления или типы. Это был как раз наш случай, и таких объектов в базе было довольно много. Что делать? Я создал дамп схемы и импортировал его в начальной миграции.

Дамп создавал так:

Далее создаем пустую миграцию и импортируем в ней нам дамп.

Теперь как эту миграцию накатывать на уже существующую базу. Здесь нам поможет команда stamp алембика. На просто сделает запись в служебную таблицу алебмика о миграции без реального ее применения.

Готово, теперь мы можем автоматически генерировать миграции и воссоздавать базу в нуля с помощью alembic-а.

Источник

Alembic Export Options

By:

Use these options to control what happens when you select Cache > Alembic Cache > Export All to Alembic or Export Selection to Alembic to create Alembic cache files. See also Create Alembic caches.

General Options

Caches the current Time Slider frame only.

Caches the current Time Slider frame only.

Specifies that your current Render settings determine the Cache time range .

Specifies that the current playback range in your Time Slider determines the Cache time range .

Specifies that the range of frames between (and including) the specified Start and End times determines the Cache time range .

Specifies how often samples are taken during file creation. By default, one sample of your object’s transformations is taken every frame and saved to the Alembic file.

For example, a value of 2 caches the transformations of the current object at every other frame of the Cache Time Range .

Frame relative sample When on, you can specify the number of samples per frame. You can use this option to set frame sub-sampling data that can be interpreted by rendering applications as shutter opening and closing values for motion blur. Low/High Specifies the low and high values for frame relative sampling. Pre Roll Start Frame

Specifies at which frame to start the scene evaluation. Use this option to set the starting frame for time dependent translations that require a run up to the start frame.

Cache Time Ranges

Use the Cache Time Ranges options to specify multiple time ranges and sampling rates in the same Alembic file. For example in a cache file, you can specify a time range that samples every forth frame of an animation, and then specify another time range that samples every frame. You can use Cache Time Ranges to create a file that saves slow motion sequences at a lower sampling rate, while maintaining high sampling rates for full-action sequences.

Enter the first and last frame of the cache time range. You can also use the Start/End controls to set the time range.

Click Add Range+ to create multiple time ranges.

Indicates that a Pre-Roll range is set.

Displays the Frame Relative sample setting for the range.

Attributes

Lets you add dynamic and custom attribute data to the exported Alembic file. To add attributes do one of the following:

  • Type the name of the attribute in the Attribute field then click Add .
  • Select an attribute in the Channel Box then click From Channel Box .

Added attributes appear in the table under Attribute .

Attribute Prefix

Specify a prefix to filter out the names of attributes you want written to the Alembic file. Type a value in the Attribute Prefix field and click Add . All of the attributes with the specified prefix in their attribute name are added to the Alembic file.

Advanced Options

Outputs frame number information to the Script Editor or output window.

Turn on to exclude the source object’s normal data from the Alembic cache file.

Turn on to exclude any non-renderable nodes or hierarchy, such as hidden objects, from the Alembic file.

Turn on to remove the namespaces associated with the exported objects before they are saved to Alembic file. For example, an object with the namespace taco:foo:bar appears as bar in the Alembic file.

Turn on to write UV data from polygon meshes and subdivision objects to the Alembic file. Only the current UV map is included.

Write Color Sets

Lets you write color per-vertex data from the source polygon meshes to the Alembic file. You can use this data to export motion vector data from the mesh for motion blur effects at render time.

Turn on Write Color Sets , and then add Motion Vector Color Set to the exported attribute list. To do this, in the Attributes section, type motionVectorColorSet beside Attribute , and then click Add .

Write Face Sets

Turn on to save per-face shading group assignments to the Alembic cache. Maya only saves the shading group names to the file. No material information is written to the cache.

When you load the Alembic file, Maya re-assigns shading to the faces if the shading groups exist in the scene. Maya does not create new materials or shading groups.

Whole Frame Geo

When on, geometry data at whole frames is sampled and written to the file. When off (default), geometry data is sampled at sub-frames and written to the file.

Turn on to store the top node in the node hierarchy as world space. By default, these nodes are stored as local space.

Turn on to store the visibility state of objects in the Alembic file. Otherwise, all objects are considered visible.

Filter Euler Rotations

Turn on to filter , X, Y, and Z rotation data with an Euler filter. Euler filtering helps resolve irregularities in rotations especially if X, Y, and Z rotations exceed 360 degrees.

Turn on to export the geometry’s edge and vertex crease information to the Alembic file.

Creates an Alembic cache file that conforms to the HDF5 data model. This option provides backwards compatibility with previous versions of Alembic.

Creates an Ogawa Alembic file. Files created with the Ogawa format are smaller in size and provide better performance than legacy Alembic files.

Callbacks

The recommended way to use callbacks with the Alembic export is to first define a global procedure. For example, in the Script Editor , define the following:

The full MEL callback is:

When each frame is evaluated, the string specified is evaluated as a MEL command. For example, print(«#FRAME#») .

Post Job Callback MEL

When the translation has finished, the string specified is evaluated as a MEL command. For example, print(«Done!») .

Per Frame Callback Python

When each frame is evaluated, the string specified is evaluated as a Python command. For example, print(«#FRAME#») .

Post Job Callback Python

When the translation has finished, the string specified is evaluated as a Python command. For example, print(«Done!») .

Источник

trouble embeding an alembic in a digital asset

  
1264  
1  
0

 May 11, 2016 10:28 a.m.

Hello

I’m trying to embed an alembic in a digital asset. I can’t figure out how to reference it inside the digital asset. I’ve attached an example.

In that example asset are embedded a test.bgeo and a test.abc.
I can reference the .bgeo with a file node pointing to “opdef../..?test.bgeo”.
If I try it with a alembic node pointing to “opdef../..?test.abc” I get an “error evaluating alembic”. If i reference the alembic from an external source it works, so I don’t think the alembic itself is the problem.

can someone tell me what’s going on there?

Attachments:

martijn_abctest2.hdalc (35.9 KB)

 May 12, 2016 1:53 p.m.

mart1jn
Hello

I’m trying to embed an alembic in a digital asset. I can’t figure out how to reference it inside the digital asset. I’ve attached an example.

In that example asset are embedded a test.bgeo and a test.abc.
I can reference the .bgeo with a file node pointing to “opdef:../..?test.bgeo”.
If I try it with a alembic node pointing to “opdef:../..?test.abc” I get an “error evaluating alembic”. If i reference the alembic from an external source it works, so I don’t think the alembic itself is the problem.

can someone tell me what’s going on there?

This works for me (try the attached). Using an Alembic SOP, I can access the file using
opdefop/abccontent?subd.abc

Note that for this to work, the Alembic has to be saved in Ogawa format.

Attachments:

abc.hda (5.0 KB)

Hello,

I’m having an issue when trying to render a file on a render farm. The file is created by maya 2020 + vray 5. Everything works properly when render locally. However, when using render farm, it’s rendered with all black frames, and the log said that the Alembic file couldn’t be opened. So I supposed that it might be the reason.

I really appreciate if anyone can help me. Thanks in advance!

2022-02-13 10:17:11: 0: STDOUT: HDF5-DIAG: Error detected in HDF5 (1.8.20) thread 0:
2022-02-13 10:17:11: 0: STDOUT: #000: D:devAlembicCMake-hdf5-1.8.20hdf5-1.8.20srcH5F.c line 433 in H5Fis_hdf5(): no file name specified
2022-02-13 10:17:11: 0: STDOUT: major: Invalid arguments to routine
2022-02-13 10:17:11: 0: STDOUT: minor: Out of range
2022-02-13 10:17:11: 0: WARNING: Strict error checking on, ignoring the following unrecognized error or warning. If it is fatal, please email support@thinkboxsoftware.com with the error message.
2022-02-13 10:17:11: 0: STDOUT: Error: Error opening these alembic files:
2022-02-13 10:17:11: 0: STDOUT: [2022/Feb/13|10:17:10] V-Ray: (Estimated time remaining: 0h 0m 0.5s): 57 % completed
2022-02-13 10:17:11: 0: STDOUT: [2022/Feb/13|10:17:11] V-Ray: (Estimated time remaining: 0h 0m 0.5s): 61 % completed
2022-02-13 10:17:11: 0: STDOUT: [2022/Feb/13|10:17:11] V-Ray: (Estimated time remaining: 0h 0m 0.6s): 63 % completed
2022-02-13 10:17:11: 0: STDOUT: [2022/Feb/13|10:17:11] V-Ray: Total time translating scene for V-Ray 0h 0m 1.1s (1.1 s)
2022-02-13 10:17:11: 0: STDOUT: [2022/Feb/13|10:17:11] V-Ray: Rendering.
2022-02-13 10:17:11: 0: STDOUT: [2022/Feb/13|10:17:11] V-Ray: Bitmap manager created.
2022-02-13 10:17:11: 0: STDOUT: [2022/Feb/13|10:17:11] V-Ray: Rendering frames.
2022-02-13 10:17:11: 0: STDOUT: [2022/Feb/13|10:17:11] V-Ray: Updating frame at time 90.00

I just built Alembic 1.7.12 and gave importing particles in Maya a go (implemented with #163 and #202). However, when doing the import Maya instantly crashed.

The crash does not occur in DG evaluation mode and is only reproducable with Parallel evaluation mode.

Stack trace:
  OpenMaya.dll!THdependNode::computePlug
  DependEngine.dll!TevaluationNode::evaluateDirtyPlugs
  DependEngine.dll!TevaluationNode::taskEvaluation
  DependEngine.dll!TparallelExecution::evaluateAndVisitChildren
  DependEngine.dll!TparallelExecution::evaluateAndSchedule
  DependEngine.dll!TparallelExecution::sAddNodesWithinDepthToSet
  tbb.dll!tbb::interface7::internal::task_arena_base::internal_execute
  DependEngine.dll!TparallelExecution::evaluateImplementation
  DependEngine.dll!TevaluationGraph::evaluate
  DependEngine.dll!TevaluationManager::evaluate
  DependEngine.dll!TcipEvaluationManager::operator=
  DependEngine.dll!TdependGraph::setTime
  Shared.dll!TfrozenEvaluator::sProcessDownstream
  ExtensionLayer.dll!TidleAction::preDoIdleAction
  ExtensionLayer.dll!TarrayTdeviceHandlerPtr::size
  ExtensionLayer.dll!TperiodElapsedMsg::operator=
  ExtensionLayer.dll!TeventHandler::doIdles
  ExtensionLayer.dll!TidleLicenseAction::doIdleAction
  Qt5Core.dll!QObject::event
  Qt5Widgets.dll!QApplicationPrivate::notify_helper
  Qt5Widgets.dll!QApplication::notify
  ExtensionLayer.dll!TwindowManager::windowPreferencesAreEnabled
  Qt5Core.dll!QCoreApplication::notifyInternal2
  Qt5Core.dll!QEventDispatcherWin32::event
  Qt5Widgets.dll!QApplicationPrivate::notify_helper
  Qt5Widgets.dll!QApplication::notify
  ExtensionLayer.dll!TwindowManager::windowPreferencesAreEnabled
  Qt5Core.dll!QCoreApplication::notifyInternal2
  Qt5Core.dll!QCoreApplicationPrivate::sendPostedEvents
  qwindows.dll!qt_plugin_query_metadata
  Qt5Core.dll!QEventDispatcherWin32::processEvents
  USER32.dll!CallWindowProcW
  USER32.dll!DispatchMessageW
  Qt5Core.dll!QEventDispatcherWin32::processEvents
  qwindows.dll!qt_plugin_query_metadata
  Qt5Core.dll!QEventLoop::exec
  Qt5Core.dll!QCoreApplication::exec
  ExtensionLayer.dll!Tapplication::start
  maya.exe!<7FF7DFA777A8>
  maya.exe!TiteratorWrapperFwd<TscenePartitions::ConstIteratorDescriptor,TiteratorWrapper<TscenePartitions::ConstIteratorDescriptor> >::operator++

This is the .abc file I quickly exported. (Just created nParticle emitter, select shape, export timeline):

I tried to change in Alembic but when I try to run Alembic current I got error. I’m new in alembic, please tell me why I get this error and how can I solve it?

I can see alembic.ini in migration folder and also revision identifiers, used by Alembic and everything seems fine.

$alembic current
No handlers could be found for logger "alembic.util"
  FAILED: No config file 'alembic.ini' found, or file has no '[alembic]' section

20c921506336_.py:

"""empty message

Revision ID: 20c921506336
Revises: None
Create Date: 2015-01-30 16:28:38.981023

"""

# revision identifiers, used by Alembic.
revision = '20c921506336'
down_revision = None

from alembic import op
import sqlalchemy as sa


def upgrade():
    ### commands auto generated by Alembic - please adjust! ###
    op.create_table('user',
    sa.Column('id', sa.Integer(), nullable=False),
    sa.Column('name', sa.String(length=50), nullable=True),
    sa.Column('email', sa.String(length=50), nullable=True),
    sa.Column('age', sa.Integer(), nullable=True),
    sa.Column('bestfriend_id', sa.Integer(), nullable=True),
    sa.ForeignKeyConstraint(['bestfriend_id'], ['user.id'], ),
    sa.PrimaryKeyConstraint('id')
    )
    op.create_index(u'ix_user_age', 'user', ['age'], unique=True)
    op.create_index(u'ix_user_email', 'user', ['email'], unique=True)
    op.create_index(u'ix_user_name', 'user', ['name'], unique=True)
    op.create_table('friends',
    sa.Column('user_id', sa.Integer(), nullable=True),
    sa.Column('friend_id', sa.Integer(), nullable=True),
    sa.ForeignKeyConstraint(['friend_id'], ['user.id'], ),
    sa.ForeignKeyConstraint(['user_id'], ['user.id'], )
    )
    ### end Alembic commands ###


def downgrade():
    ### commands auto generated by Alembic - please adjust! ###
    op.drop_table('friends')
    op.drop_index(u'ix_user_name', table_name='user')
    op.drop_index(u'ix_user_email', table_name='user')
    op.drop_index(u'ix_user_age', table_name='user')
    op.drop_table('user')
    ### end Alembic commands ###

Понравилась статья? Поделить с друзьями:
  • Error etc nginx conf d default conf differs from the packaged version
  • Error enumeration value not handled in switch
  • Error entity mod
  • Error estimate перевод
  • Error establishing a database connection что это значит