FBX SDK Normals Incorrect with Skinned Meshes with animations

ilan.keshet
Enthusiast

FBX SDK Normals Incorrect with Skinned Meshes with animations

ilan.keshet
Enthusiast
Enthusiast

I've made a post on this stackoverflow regarding this issue:
https://stackoverflow.com/questions/72876412/fbx-sdk-importing-normals-inconsistent-with-maya-normal...

 

In short summary, -- Exporting Skinned meshes and viewing data from FBX SDK seems to have their normals not matching Maya's Normals, while for non-skinned it matches exactly.

 

In the link above, it shows some error between normals -- but I've tried other examples where normals are just completely wrong and unusable. 

 

There was a similar post posted to this forum, here: https://forums.autodesk.com/t5/fbx-forum/maya-fbx-exporting-normal-information-disappearing/td-p/428... 

 

But no answer was really ever given. 

Was that issue resolved and perhaps there is some bug in my code? 

 

0 Likes
Reply
Accepted solutions (1)
4,218 Views
36 Replies
Replies (36)

regalir
Autodesk
Autodesk

I am not sure I understand the issue. I read your post on stackoverflow so i tried to create a sphere, and skinned it with three bones. Then I exported to the FBX file. Imported back into Maya and compared the normals on one selected face (the same on both the reference sphere and the imported one). Maya shows exactly the same values. I am attaching my data. Please note that, to have manegable numbers, after I skinned the sphere, I deleted most of the faces to remain with 5 polygons only. In the Zip file, you will find the Maya file, the Fbx file and the screen grab showing the numbers on the vertices 0,1 and 6. In the screenshot, dummy1::pSphereShape1 is the imported model. Maybe I am not doing the same exact steps that you do?

 

Anyway, something to remember, when Maya imports deformed meshes (skin, blendshapes) or having smoothing layers from an FBX file, the normals are automatically "unlocked" so Maya is free to recompute them as it sees fit. Non deformed geometries will import with "locked" normals (they show in yellow instead of green). Also, make sure you compare the normals at the same frame. Being deformed, and Maya having the freedom to recalculate them, if you compare, for example at frame 1 in Maya but at frame 0 in the FBX scene, that may explain the difference in the values (of course it depends on the deformation). In my test case, I did not animate anything.

 

Just to possibly narrow things down, please try to use the File->Import command instead of the Drag&Drop. I am not sure if the Drag&Drop is setting the FBX import exactly as the File->Import command. Worth checking! 🙂

 

 

0 Likes

ilan.keshet
Enthusiast
Enthusiast

I am not talking about what the values are shown in Maya -- I'm talking about what the values are given to me by FBX SDK 2020

 

Yes I agree the values IN maya do show correctly after you redrag and drop it in.   but using the FBX SDK it gives wonky normals.

 

I provided full sample code from FBX SDK grabbing normal data from the fbx file at the Stackoverflow page.

 

I will try your sample zip file

ilan.keshet
Enthusiast
Enthusiast

--erased

0 Likes

ilan.keshet
Enthusiast
Enthusiast

I have tested with the data you have sent me, and now the normals shown in maya match with FBX SDK code. 

 

However, the file you sent me does not have any animation data inside of it. So maybe that is part of the cause. 

 

Attached is the FBX sample file I have been using generated by an artist on my team that has broken the FBX SDK.

DaveMay3D
Contributor
Contributor

I'm also using the 2020 FBX SDK and I just encountered this for my first animated skinned mesh import. It's as though the normals are being brought in as they are in world space for the first frame, rather than matching the geometry. In my case it's a mechanical bird with wings, and the animation has its wings up. When lit in my shader it's being lit as though the normals are applied with the wings up, which does not match the geometry.

 

I'm trying to figure out how I would fix this. It wouldn't make sense to have to adjust only the normals for the bind pose--or something--and not the geometry.

 

Did you come across a cause or solution? I'm perplexed on this.

0 Likes

ilan.keshet
Enthusiast
Enthusiast

I have yet to come up to a solution to this. I've been waiting for Autodesk to reply.

 

I even sent a message to a senior engineer at autodesk about this with no reply. 

ilan.keshet
Enthusiast
Enthusiast

The workaround solution im going on -- is I am requiring (for now) to send in the fbx without animations in bind pose

DaveMay3D
Contributor
Contributor

Here's my example. This is in my own shader, per-vertex lit only, with one light directly overhead. The animation starts almost in the same position with the bird's wings turned 90deg such that the "flat" side of this left wing facing toward the camera would be facing upward and lit. But I'm not applying the bone matrix to the geometry or the normals, so it shouldn't be lit now--it's like the bone is pre-applied to the normals and not the geometry. If I remove the bones from the model he drops into this position, and I would be he would be lit correctly then. Again I don't know what would change the normals without changing the attached geometry.

 

Thanks for the fast reply. Have you tried this in a previous SDK version?

 

DavePeasant_0-1658341859717.png

 

0 Likes

ilan.keshet
Enthusiast
Enthusiast

1. Make sure the normals you get are from FBX Bind Pose with no animations in the FBX   (Temp workaround until autodesk fixes Maya Export of FBX)  -- This problem only happens during Maya FBX Export   -- Export FBX animated file in 3Ds Max works. 

 

2. Make sure that the normals in FBX are re-computed if there is a transformation on the mesh  -- and apply updated normals via Normal Matrix   (If you are baking in the Transformation to the vertices)

 

3. Make sure that the normals you use in your shader are computed with the Inverse of the MV transform  (Normal Matrix)

 

 

--- I've only been using latest FBX 2020, -- but I don't think it is a problem with FBX SDK,  I think it is a problem with Maya Exporting, because data is correct when using 3Ds Max Skinned Animated mesh

DaveMay3D
Contributor
Contributor

Yes, just setting the mesh to the bind pose and exporting gives me correct results. Everything for me jives with what you're saying.

 

I can go back into Maya from the bind pose, turn one of those wings 90deg, and that wing is wrong again. Therefore, the normals are being written into the FBX based on the initial pose, while the geometry is not. That must certainly be something wrong in Maya if you don't encounter this in Max.

Also this issue occurs whether or not there is an animation.

 

I'm not re-computing anything in my import; I want to the normals to come from the FBX. I'm building a tree of nodes with transforms so I am not baking anything. My shader is using the world inverse transpose for the normal calculation, although so far all my transforms should be orthogonal.

 

So what do we do to get Autodesk to take a look at this issue? I'd like to be able to import just about anything without export rules special for Maya. I think I know just one person at Autodesk.

 

0 Likes

regalir
Autodesk
Autodesk

Sorry but I still don't understand what is the issue here (both for the bird model and the basic sphere sample). There have been no changes in the way we export normals for several years now so it may just be a misunderstanding of what you can expect is stored in the FBX file?

 

The geometry/normals saved to the FBX files are taken before the deformation nodes (skinCluster) so we don't depend on time based modified values. There is also a limitation about the construction nodes that still exist in the history. Normally, the FBX export will ignore these nodes but some of them may modify the retrieved data in a way incompatible with the export. FYI, it is always a good idea to "delete non-deformer history" before exporting to FBX to increase the "fidelity" of the saved data.

 

Also, how did you configured the export? Have you set some options or just with the default values? I sincerely apologize for not being more precise but, as I said in my previous post and at the beginning of this one, I really don't understand the problem :-(. It will certainly help me to give more significant answer that this one, if you can generate a very simple test case (a little bit like I did in my test.zip scene) and post the obtained results, the expected ones and include the full export process. I did not see anything wrong with the sample code posted on  stackoverflow (except maybe that all the switch/case to retrieve the normals  in the ImportMesh() function is exactly what is performed inside the GetPolygonVertexNormal() ;-))

0 Likes

ilan.keshet
Enthusiast
Enthusiast

Just one thing of note as a possible correction of what you posted. 

 

-- When I did testing, and compared with Normal Exported values -- they weren't matching the first frame in Maya.  I have no idea where these normals where coming from.   (I would go into Maya's Component editor and view the data on the first frame) 

 

Validating the normals just with a unit Sphere is the easiest, since the normal values should approximately be matching that of the position on the Sphere. 

ilan.keshet
Enthusiast
Enthusiast

I think the problem I stated was very clear. -- And I even posted an .fbx file that was generated from Maya. 

 

The Normal Data coming out of the .fbx is incorrect.   I am reading the normal data directly from FBX SDK, and it is not matching the correct values that should be in bind pose. 

 

I even have full sample code that I posted on Stackoverflow and the sample FBX file -- that even outputs the normal values where you can clearly see its broken. 

 

It is possible as to what you said about that perhaps the history or something in maya is breaking the normals when they are exported -- But the very strange thing is that the geometry (positions) are totally correct. 

0 Likes

ilan.keshet
Enthusiast
Enthusiast

@regalir wrote:

I did not see anything wrong with the sample code posted on  stackoverflow (except maybe that all the switch/case to retrieve the normals  in the ImportMesh() function is exactly what is performed inside the GetPolygonVertexNormal() ;-))




 

The reason why I had that extra code in that sample is because I was trying to see if ANYTHING I could do -- would get the correct normals, but it did not.   Normals are clearly busted from the stackoverflow post.

0 Likes

ilan.keshet
Enthusiast
Enthusiast

@regalir wrote:

if you can generate a very simple test case (a little bit like I did in my test.zip scene) and post the obtained results, the expected ones and include the full export process.



Your test.zip is an invalid test case -- it doesn't have animation data in it.   The bug only happens when there is animation in the maya scene and you export to an fbx -- and you load the Fbx file using FBX SDK

ilan.keshet
Enthusiast
Enthusiast

@regalir wrote:

... post the obtained results, the expected ones and include the full export process.



I've already posted the output on the Stackoverflow post of the Unit sphere, and just by even looking at the normals its very easy to tell its broken, without even opening it in maya. 

 

Vertex Count: 0 Vertex Index: 20
Position: X: 0.293893 Y: -0.951057 Z: -0.0954916 W: 0
Normal: X: 0.298177 Y: 0.267987 Z: -0.916119 W: 1

Vertex Count: 1 Vertex Index: 0
Position: X: 0.148778 Y: -0.987688 Z: -0.0483409 W: 0
Normal: X: 0.18352 Y: 0.228479 Z: -0.956095 W: 1

Vertex Count: 2 Vertex Index: 21
Position: X: 0.25 Y: -0.951057 Z: -0.181636 W: 0
Normal: X: 0.246448 Y: 0.378525 Z: -0.892179 W: 1

 

The normals / positions should very similar, and match in sign. -- Here normals are completely off and signs are wrong. 

DaveMay3D
Contributor
Contributor

@regalir when I import @ilan.keshet 's sphere into my test engine from FBX SDK 2020.3.1, with no animation applied, I can confirm the normals are facing the wrong direction and they also have the bone's distortion from the first frame baked in. The geometry is however correct. I have not supplied any of my code or files yet, but based on the documentation I would be expecting the light to be coming from my light source directly above, since the normals would match the position information. If I remove the animation and leave the joints, the normal distortion is gone but they are facing a different but still wrong direction. If I put the mesh in bind pose before exporting, the normals match perfectly. The way I'm importing, I would expect to get the same information every time.

 

DavePeasant_0-1658353879870.png

 

DaveMay3D
Contributor
Contributor

Sorry but I still don't understand what is the issue here (both for the bird model and the basic sphere sample). There have been no changes in the way we export normals for several years now so it may just be a misunderstanding of what you can expect is stored in the FBX file?

 

Given the response I would imagine it's very possible it's been wrong for several years. There appears to be something about Maya FBX export in contradiction to your statement:

 

The geometry/normals saved to the FBX files are taken before the deformation nodes (skinCluster) so we don't depend on time based modified values.

 

@ilan.keshet seems to have proven that with the sphere example. Indeed the normals, unlike geometry, seem to be baked to the position they are in at the time of export regardless of the animation. That's what I'm observing at least. Default FBX export options, no history.

 

I tend to import everything in its bind pose on the first frame. From my understanding, popular game engines write their own FBX importers. I didn't run into this until I had an animated file where the first frame was not in the bind pose.

 

If I export the same animated file, but right before I export I put the skeleton in bind pose, I get correct normals:

 

DavePeasant_0-1658357772379.png

 

Per your statement I would expect this result no matter what position I have the joints in. (Again this is a single combined mesh so that really shows the deformation is being applied ONLY to the normals.)

 

Thanks for your responses.

 

 

0 Likes

regalir
Autodesk
Autodesk

Okay guys, I dig deep into the history of the code and after several hours of investigations I have to come to the conclusion you already came to, and that is that Maya export the "modified" normals. I went back about 20 years in the code and I confirm that this is "by design". Let me try to explain the reasons we export unmodified vertices but modified normals.

 

As I wrote in previous posts, we do indeed save the geometry coordinates before any deformation occurs. The particular thing with the normals is that, as you may already know, in Maya you can actually lock individual vertices normals and mix hard/smooth surfaces. When we export such geometries to FBX we try to respect the values the user defined (an explicitly set value = locked) and we have to get them from the deformed geometry because this is where they are stored. I also mentioned that, typically, normals need to be re-computed every time the deformations are evaluated so "it does not really matter what is their initial value" (the only exception would be if you want to keep "locked" values but, of course in this case the rendering will look "weird" while the skin is deformed). Yes, I know, this is not the best answer, but is also pretty much what every 3D editing software does! (I mean, re-compute the normals based on the deformations) 🙂

 

It probably won't help much in your case but, for what is worth, in the FBX SDK we have the function FbxMesh::GenerateNormals(...) that can be used to compute vertex normals on the mesh based on its topology.

 

Hope this helped to clarify the current results

Regards

Type a product name

______
icon-svg-close-thick

Cookie preferences

Your privacy is important to us and so is an optimal experience. To help us customize information and build applications, we collect data about your use of this site.

May we collect and use your data?

Learn more about the Third Party Services we use and our Privacy Statement.

Strictly necessary – required for our site to work and to provide services to you

These cookies allow us to record your preferences or login information, respond to your requests or fulfill items in your shopping cart.

Improve your experience – allows us to show you what is relevant to you

These cookies enable us to provide enhanced functionality and personalization. They may be set by us or by third party providers whose services we use to deliver information and experiences tailored to you. If you do not allow these cookies, some or all of these services may not be available for you.

Customize your advertising – permits us to offer targeted advertising to you

These cookies collect data about you based on your activities and interests in order to show you relevant ads and to track effectiveness. By collecting this data, the ads you see will be more tailored to your interests. If you do not allow these cookies, you will experience less targeted advertising.

icon-svg-close-thick

THIRD PARTY SERVICES

Learn more about the Third-Party Services we use in each category, and how we use the data we collect from you online.

icon-svg-hide-thick

icon-svg-show-thick

Strictly necessary – required for our site to work and to provide services to you

Qualtrics
We use Qualtrics to let you give us feedback via surveys or online forms. You may be randomly selected to participate in a survey, or you can actively decide to give us feedback. We collect data to better understand what actions you took before filling out a survey. This helps us troubleshoot issues you may have experienced. Qualtrics Privacy Policy
Akamai mPulse
We use Akamai mPulse to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, and your Autodesk ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. Akamai mPulse Privacy Policy
Digital River
We use Digital River to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, and your Autodesk ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. Digital River Privacy Policy
Dynatrace
We use Dynatrace to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, and your Autodesk ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. Dynatrace Privacy Policy
Khoros
We use Khoros to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, and your Autodesk ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. Khoros Privacy Policy
Launch Darkly
We use Launch Darkly to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, and your Autodesk ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. Launch Darkly Privacy Policy
New Relic
We use New Relic to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, and your Autodesk ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. New Relic Privacy Policy
Salesforce Live Agent
We use Salesforce Live Agent to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, and your Autodesk ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. Salesforce Live Agent Privacy Policy
Wistia
We use Wistia to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, and your Autodesk ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. Wistia Privacy Policy
Tealium
We use Tealium to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. Tealium Privacy Policy
Upsellit
We use Upsellit to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. Upsellit Privacy Policy
CJ Affiliates
We use CJ Affiliates to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. CJ Affiliates Privacy Policy
Commission Factory
We use Commission Factory to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. Commission Factory Privacy Policy
Google Analytics (Strictly Necessary)
We use Google Analytics (Strictly Necessary) to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, and your Autodesk ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. Google Analytics (Strictly Necessary) Privacy Policy
Typepad Stats
We use Typepad Stats to collect data about your behaviour on our sites. This may include pages you’ve visited. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our platform to provide the most relevant content. This allows us to enhance your overall user experience. Typepad Stats Privacy Policy
Geo Targetly
We use Geo Targetly to direct website visitors to the most appropriate web page and/or serve tailored content based on their location. Geo Targetly uses the IP address of a website visitor to determine the approximate location of the visitor’s device. This helps ensure that the visitor views content in their (most likely) local language.Geo Targetly Privacy Policy
SpeedCurve
We use SpeedCurve to monitor and measure the performance of your website experience by measuring web page load times as well as the responsiveness of subsequent elements such as images, scripts, and text.SpeedCurve Privacy Policy
Qualified
Qualified is the Autodesk Live Chat agent platform. This platform provides services to allow our customers to communicate in real-time with Autodesk support. We may collect unique ID for specific browser sessions during a chat. Qualified Privacy Policy

icon-svg-hide-thick

icon-svg-show-thick

Improve your experience – allows us to show you what is relevant to you

Google Optimize
We use Google Optimize to test new features on our sites and customize your experience of these features. To do this, we collect behavioral data while you’re on our sites. This data may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, your Autodesk ID, and others. You may experience a different version of our sites based on feature testing, or view personalized content based on your visitor attributes. Google Optimize Privacy Policy
ClickTale
We use ClickTale to better understand where you may encounter difficulties with our sites. We use session recording to help us see how you interact with our sites, including any elements on our pages. Your Personally Identifiable Information is masked and is not collected. ClickTale Privacy Policy
OneSignal
We use OneSignal to deploy digital advertising on sites supported by OneSignal. Ads are based on both OneSignal data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that OneSignal has collected from you. We use the data that we provide to OneSignal to better customize your digital advertising experience and present you with more relevant ads. OneSignal Privacy Policy
Optimizely
We use Optimizely to test new features on our sites and customize your experience of these features. To do this, we collect behavioral data while you’re on our sites. This data may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, your Autodesk ID, and others. You may experience a different version of our sites based on feature testing, or view personalized content based on your visitor attributes. Optimizely Privacy Policy
Amplitude
We use Amplitude to test new features on our sites and customize your experience of these features. To do this, we collect behavioral data while you’re on our sites. This data may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, your Autodesk ID, and others. You may experience a different version of our sites based on feature testing, or view personalized content based on your visitor attributes. Amplitude Privacy Policy
Snowplow
We use Snowplow to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, and your Autodesk ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. Snowplow Privacy Policy
UserVoice
We use UserVoice to collect data about your behaviour on our sites. This may include pages you’ve visited. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our platform to provide the most relevant content. This allows us to enhance your overall user experience. UserVoice Privacy Policy
Clearbit
Clearbit allows real-time data enrichment to provide a personalized and relevant experience to our customers. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID.Clearbit Privacy Policy
YouTube
YouTube is a video sharing platform which allows users to view and share embedded videos on our websites. YouTube provides viewership metrics on video performance. YouTube Privacy Policy

icon-svg-hide-thick

icon-svg-show-thick

Customize your advertising – permits us to offer targeted advertising to you

Adobe Analytics
We use Adobe Analytics to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, and your Autodesk ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. Adobe Analytics Privacy Policy
Google Analytics (Web Analytics)
We use Google Analytics (Web Analytics) to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. Google Analytics (Web Analytics) Privacy Policy
AdWords
We use AdWords to deploy digital advertising on sites supported by AdWords. Ads are based on both AdWords data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that AdWords has collected from you. We use the data that we provide to AdWords to better customize your digital advertising experience and present you with more relevant ads. AdWords Privacy Policy
Marketo
We use Marketo to send you more timely and relevant email content. To do this, we collect data about your online behavior and your interaction with the emails we send. Data collected may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, email open rates, links clicked, and others. We may combine this data with data collected from other sources to offer you improved sales or customer service experiences, as well as more relevant content based on advanced analytics processing. Marketo Privacy Policy
Doubleclick
We use Doubleclick to deploy digital advertising on sites supported by Doubleclick. Ads are based on both Doubleclick data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that Doubleclick has collected from you. We use the data that we provide to Doubleclick to better customize your digital advertising experience and present you with more relevant ads. Doubleclick Privacy Policy
HubSpot
We use HubSpot to send you more timely and relevant email content. To do this, we collect data about your online behavior and your interaction with the emails we send. Data collected may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, email open rates, links clicked, and others. HubSpot Privacy Policy
Twitter
We use Twitter to deploy digital advertising on sites supported by Twitter. Ads are based on both Twitter data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that Twitter has collected from you. We use the data that we provide to Twitter to better customize your digital advertising experience and present you with more relevant ads. Twitter Privacy Policy
Facebook
We use Facebook to deploy digital advertising on sites supported by Facebook. Ads are based on both Facebook data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that Facebook has collected from you. We use the data that we provide to Facebook to better customize your digital advertising experience and present you with more relevant ads. Facebook Privacy Policy
LinkedIn
We use LinkedIn to deploy digital advertising on sites supported by LinkedIn. Ads are based on both LinkedIn data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that LinkedIn has collected from you. We use the data that we provide to LinkedIn to better customize your digital advertising experience and present you with more relevant ads. LinkedIn Privacy Policy
Yahoo! Japan
We use Yahoo! Japan to deploy digital advertising on sites supported by Yahoo! Japan. Ads are based on both Yahoo! Japan data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that Yahoo! Japan has collected from you. We use the data that we provide to Yahoo! Japan to better customize your digital advertising experience and present you with more relevant ads. Yahoo! Japan Privacy Policy
Naver
We use Naver to deploy digital advertising on sites supported by Naver. Ads are based on both Naver data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that Naver has collected from you. We use the data that we provide to Naver to better customize your digital advertising experience and present you with more relevant ads. Naver Privacy Policy
Quantcast
We use Quantcast to deploy digital advertising on sites supported by Quantcast. Ads are based on both Quantcast data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that Quantcast has collected from you. We use the data that we provide to Quantcast to better customize your digital advertising experience and present you with more relevant ads. Quantcast Privacy Policy
Call Tracking
We use Call Tracking to provide customized phone numbers for our campaigns. This gives you faster access to our agents and helps us more accurately evaluate our performance. We may collect data about your behavior on our sites based on the phone number provided. Call Tracking Privacy Policy
Wunderkind
We use Wunderkind to deploy digital advertising on sites supported by Wunderkind. Ads are based on both Wunderkind data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that Wunderkind has collected from you. We use the data that we provide to Wunderkind to better customize your digital advertising experience and present you with more relevant ads. Wunderkind Privacy Policy
ADC Media
We use ADC Media to deploy digital advertising on sites supported by ADC Media. Ads are based on both ADC Media data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that ADC Media has collected from you. We use the data that we provide to ADC Media to better customize your digital advertising experience and present you with more relevant ads. ADC Media Privacy Policy
AgrantSEM
We use AgrantSEM to deploy digital advertising on sites supported by AgrantSEM. Ads are based on both AgrantSEM data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that AgrantSEM has collected from you. We use the data that we provide to AgrantSEM to better customize your digital advertising experience and present you with more relevant ads. AgrantSEM Privacy Policy
Bidtellect
We use Bidtellect to deploy digital advertising on sites supported by Bidtellect. Ads are based on both Bidtellect data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that Bidtellect has collected from you. We use the data that we provide to Bidtellect to better customize your digital advertising experience and present you with more relevant ads. Bidtellect Privacy Policy
Bing
We use Bing to deploy digital advertising on sites supported by Bing. Ads are based on both Bing data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that Bing has collected from you. We use the data that we provide to Bing to better customize your digital advertising experience and present you with more relevant ads. Bing Privacy Policy
G2Crowd
We use G2Crowd to deploy digital advertising on sites supported by G2Crowd. Ads are based on both G2Crowd data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that G2Crowd has collected from you. We use the data that we provide to G2Crowd to better customize your digital advertising experience and present you with more relevant ads. G2Crowd Privacy Policy
NMPI Display
We use NMPI Display to deploy digital advertising on sites supported by NMPI Display. Ads are based on both NMPI Display data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that NMPI Display has collected from you. We use the data that we provide to NMPI Display to better customize your digital advertising experience and present you with more relevant ads. NMPI Display Privacy Policy
VK
We use VK to deploy digital advertising on sites supported by VK. Ads are based on both VK data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that VK has collected from you. We use the data that we provide to VK to better customize your digital advertising experience and present you with more relevant ads. VK Privacy Policy
Adobe Target
We use Adobe Target to test new features on our sites and customize your experience of these features. To do this, we collect behavioral data while you’re on our sites. This data may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, your Autodesk ID, and others. You may experience a different version of our sites based on feature testing, or view personalized content based on your visitor attributes. Adobe Target Privacy Policy
Google Analytics (Advertising)
We use Google Analytics (Advertising) to deploy digital advertising on sites supported by Google Analytics (Advertising). Ads are based on both Google Analytics (Advertising) data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that Google Analytics (Advertising) has collected from you. We use the data that we provide to Google Analytics (Advertising) to better customize your digital advertising experience and present you with more relevant ads. Google Analytics (Advertising) Privacy Policy
Trendkite
We use Trendkite to deploy digital advertising on sites supported by Trendkite. Ads are based on both Trendkite data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that Trendkite has collected from you. We use the data that we provide to Trendkite to better customize your digital advertising experience and present you with more relevant ads. Trendkite Privacy Policy
Hotjar
We use Hotjar to deploy digital advertising on sites supported by Hotjar. Ads are based on both Hotjar data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that Hotjar has collected from you. We use the data that we provide to Hotjar to better customize your digital advertising experience and present you with more relevant ads. Hotjar Privacy Policy
6 Sense
We use 6 Sense to deploy digital advertising on sites supported by 6 Sense. Ads are based on both 6 Sense data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that 6 Sense has collected from you. We use the data that we provide to 6 Sense to better customize your digital advertising experience and present you with more relevant ads. 6 Sense Privacy Policy
Terminus
We use Terminus to deploy digital advertising on sites supported by Terminus. Ads are based on both Terminus data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that Terminus has collected from you. We use the data that we provide to Terminus to better customize your digital advertising experience and present you with more relevant ads. Terminus Privacy Policy
StackAdapt
We use StackAdapt to deploy digital advertising on sites supported by StackAdapt. Ads are based on both StackAdapt data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that StackAdapt has collected from you. We use the data that we provide to StackAdapt to better customize your digital advertising experience and present you with more relevant ads. StackAdapt Privacy Policy
The Trade Desk
We use The Trade Desk to deploy digital advertising on sites supported by The Trade Desk. Ads are based on both The Trade Desk data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that The Trade Desk has collected from you. We use the data that we provide to The Trade Desk to better customize your digital advertising experience and present you with more relevant ads. The Trade Desk Privacy Policy
RollWorks
We use RollWorks to deploy digital advertising on sites supported by RollWorks. Ads are based on both RollWorks data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that RollWorks has collected from you. We use the data that we provide to RollWorks to better customize your digital advertising experience and present you with more relevant ads. RollWorks Privacy Policy

Are you sure you want a less customized experience?

We can access your data only if you select "yes" for the categories on the previous screen. This lets us tailor our marketing so that it's more relevant for you. You can change your settings at any time by visiting our privacy statement

Your experience. Your choice.

We care about your privacy. The data we collect helps us understand how you use our products, what information you might be interested in, and what we can improve to make your engagement with Autodesk more rewarding.

May we collect and use your data to tailor your experience?

Explore the benefits of a customized experience by managing your privacy settings for this site or visit our Privacy Statement to learn more about your options.