trang mạng:Phần mềm CGTrader - 3D cho dự án VR/ AR và CGNội dung
window.sentryOnLoad=function(){Sentry.init({ignoreErrors:['gaisnotdefined','ga.getAllisnotafunction'],});};window.addEventListener("load",function(){letcustomContentGroup="";dataLayer=window.dataLayer||[];fetch("/load-services.js").then((response)=>{returnresponse.text();}).then((jascript_services)=>{eval(jascript_services);if(customContentGroup!==''){dataLayer.push({event:'gtm_data_load',content_group:customContentGroup,});}if(true){(function(w,l){w[l]=w[l]||[];w[l].push({'gtm.start':newDate().getTime(),event:'gtm.js'});})(window,'dataLayer');}if(true){(function(w,d,s,l,i){varf=d.getElementsByTName(s)[0],j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src='/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);})(window,document,'script','dataLayer','GTM-MGKV46');}});});window.addEventListener("load",function(){document.getElementsByTName("head")[0].appendChild(newDOMParser().parseFromString('','text/html').head.firstChild)});(function(){window.App={}window.numberOfAxiosCallPending=0;})();//jshintignore:start'usestrict'window.removeInlineCookieBar=function(){constbarSelector='.js-inline-cookies'constcurrentBar=document.querySelector(barSelector)if(currentBar){document.body.removeChild(currentBar)}}window.handleCookiesAccept=function(cookie){if(cookie){Cookies.set(cookie,true,{expires:365,path:'/'});}removeInlineCookieBar();}window.handleCookiesDismiss=function(cookie){if(cookie){Cookies.set(cookie,true,{path:'/'});}removeInlineCookieBar();}window.lazyLoad=function(ime,srcAttributeName='src'){consttempIme=newIme()tempIme.src=ime.dataset[srcAttributeName]tempIme.onload=function(){ime.src=tempIme.src}}window.checkIfUnderControl=function(isUnderControl,currentUserProfile,currentUserUsername){if(!isUnderControl||!currentUserProfile||!currentUserUsername){returnnull}constunderControlTarget=withId('under-controll-inner')constprofileLink=document.createElement('a')profileLink.href=currentUserProfileprofileLink.innerText=`Under${currentUserUsername}support.`underControlTarget.append(profileLink)withElementsToggleClass('.js-under-controll-bar','is-hidden')}functionloadScript(source,beforeEl,async=true,defer=true){returnnewPromise((resolve,reject)=>{letscript=document.createElement('script')constprior=beforeEl||document.getElementsByTName('script')[0]script.async=asyncscript.defer=deferfunctiononloadHander(_,isAbort){if(isAbort||!script.readyState||/loaded|complete/.test(script.readyState)){script.onload=nullscript.onreadystatechange=nullscript=undefinedif(isAbort){reject()}else{resolve()}}}script.onload=onloadHanderscript.onreadystatechange=onloadHanderscript.src=sourceprior.parentNode.insertBefore(script,prior)})}functiondecodeHtml(html){consttextarea=document.createElement('textarea')textarea.innerHTML=htmlreturntextarea.value}functionwithId(id){returndocument.getElementById(id)}functionwithElements(selector,callback,rootNode=document){letelementsif(typeofselector==='string'){elements=rootNode.querySelectorAll(selector)}elseif(!selector.length){elements=[selector]}else{elements=selector}for(leti=0;i0){data=[attributes,(productPricing.originalPrice-productPricing.price).toFixed(2),productPricing.price.toFixed(2)]}else{data=[attributes,0,attributes.price.toFixed(2)]}}else{data=[attributes,0,attributes.price.toFixed(2)]}if(listItemV2){items.push(prepareTrackViewItemList(...data,searchQueryPrefixed))}else{items.push(prepareTrackViewItem(...data))}returnitems}functionsearchQueryPrefix(){letprefix='';letcurrentSearchParams=newURLSearchParams(window.location.search);if(currentSearchParams.has('keywords')&¤tSearchParams.has('suggested')&¤tSearchParams.get('suggested')==='1'){prefix='suggested_'}elseif(currentSearchParams.has('keywords')){prefix='search_'}else{prefix='category_'}returnprefix}functionprepareTrackViewItemUA(attributes,discount,price){prefix=searchQueryPrefix()consttrackable_attributes={id:String(attributes.id),name:attributes.title,list_position:attributes.index,category:attributes.category,item_list_id:prefix+attributes.searchQuery,item_list_name:prefix+attributes.searchQuery,price:parseFloat((price-discount).toFixed(2)),}returntrackable_attributes}functionprepareTrackViewItemList(attributes,discount,price,prefixed=false){consthasSimilarModelsReference=window.peConfig.similarSelectconstsearchQuery=hasSimilarModelsReference?'similar':attributes.searchQuery||''consttrackable_attributes={item_id:String(attributes.id),item_name:attributes.title,affiliation:attributes.affiliation||'',currency:'USD',index:parseInt(attributes.index)||0,item_brand:attributes.authorUsername,item_category:attributes.category,item_category2:attributes.subcategory,item_category3:attributes.itemCategory3,item_category4:attributes.itemCategory4,item_category5:attributes.itemCategory5,item_list_id:searchQuery,item_list_name:searchQuery,item_variant:attributes.productType,location_id:attributes.locationId&&attributes.locationId.join("_"),price:parseFloat(price),quantity:1,}trackable_attributes.discount=discount>0?parseFloat(discount):0returntrackable_attributes}functionprepareTrackViewItem(attributes,discount,price){letprefix='';letcurrentSearchParams=newURLSearchParams(window.location.search);if(currentSearchParams.has('keywords')&¤tSearchParams.has('suggested')&¤tSearchParams.get('suggested')==='1'){prefix='suggested_'}elseif(currentSearchParams.has('keywords')){prefix='search_'}else{prefix='category_'}consttrackable_attributes={item_id:String(attributes.id),item_name:attributes.title,currency:'USD',index:attributes.index,item_category:attributes.category,item_category2:attributes.subcategory,item_list_id:prefix+attributes.searchQuery,item_list_name:prefix+attributes.searchQuery,price:price,value:parseFloat((price-discount).toFixed(2)),quantity:1,}if(discount>0){trackable_attributes.discount=parseFloat(discount)}returntrackable_attributes}//Exactcopyof/app/jascript/Utils/ResolveProductPricing.jsfunctionresolveProductPricing({cart,attributes,id,isCurrentUser}){constproductDiscountailable={saleOff:cart.isSaleOff&&attributes.isSaleOffApplicable,dailyDeals:attributes.isDailyDealApplicable,cld:!cart.isCLDDisabled&&attributes.isCLDApplicable}if(productDiscountailable.saleOff||productDiscountailable.dailyDeals){constdiscount=productDiscountailable.saleOff?(cart.isSuperDiscounts?attributes.superSaleOffDiscount:attributes.saleOffDiscount)||cart.saleOffDiscount:attributes.saleOffDiscount||30.0;constdiscountedPrice=(attributes.price*(100-discount))/100.0return{price:discountedPrice,originalPrice:attributes.price,discount:1.0-discountedPrice/attributes.price,discountAmount:attributes.price-discountedPrice,ribbon:productDiscountailable.saleOff?'saleOff':'dailyDeal',}}elseif(productDiscountailable.cld){constisCartSizeSufficient=cart.value+attributes.price>=cart.applicableCldValueif(isCurrentUser&&isCartSizeSufficient){letdiscountedPrice=Math.max(attributes.price-cart.creditsailable,attributes.price*0.7)return{price:discountedPrice,originalPrice:attributes.price,discount:1.0-discountedPrice/attributes.price,discountAmount:attributes.price-discountedPrice,ribbon:'CLD',}}else{return{price:attributes.price,originalPrice:attributes.price,discount:0,discountAmount:0,ribbon:'CLD',}}}else{return{price:attributes.price,originalPrice:attributes.price,discount:0,}}}functioncreateElementWithConfig(element,config){constel=document.createElement(element);Object.keys(config).forEach((key)=>{el.setAttribute(key,config[key]);});returnel;};////eventbus//;(function(){constevents=[]App.events={publish:function(event,data){events.forEach(function(item){if(item.key===event){item.callback(data)}})},subscribe:function(event,callback){events.push({key:event,callback:callback,})},unsubcsribe:function(event,callback){constindex=events.findIndex(function(item){returnitem.key===event&&item.callback===callback})if(index>-1){events.splice(index,1)}},}})();'usestrict'functiongetToken(){constmeta=document.querySelector('meta[name="csrf-token"]')constfreshToken=meta?meta.content:''returnfreshToken}functionsetToken(){withElements('[name=authenticity_token]',function(element){element.value=getToken()})}setToken();functioninitSaleOff(){'usestrict'functioninit(saleOffConfig){const{content,discount,discountPhrase,endsAt,isSecondaryColor,useTimer}=saleOffConfigletsetIntervalId=nullwithElements('.js-sale-off-timer',function(timerContainer){timerContainer.innerHTML=JSON.parse(timerContainer.getAttribute('data-timer')).contentwithElementsSetInnerText('#sale-off-strip-content',content,timerContainer)withElementsSetInnerText('#sale-off-strip-discount',`${discount}%`,timerContainer)withElementsSetInnerText('#sale-off-strip-discount-phrase',discountPhrase,timerContainer)withElementsSetDisplay('#sale-off-strip-time','none',timerContainer)functionupdateTimer(){lettimeRemaining=endsAt-newDate().getTime()if(timeRemaining>=0){constdays=parseInt(timeRemaining/(60*60*24*1000)).toString().padStart(2,'0')timeRemaining=(timeRemaining%(60*60*24*1000))consthours=parseInt(timeRemaining/(60*60*1000)).toString().padStart(2,'0')timeRemaining=(timeRemaining%(60*60*1000))constminutes=parseInt(timeRemaining/(60*1000)).toString().padStart(2,'0')timeRemaining=(timeRemaining%(60*1000))constseconds=parseInt(timeRemaining/1000).toString().padStart(2,'0')withElementsSetInnerText('#sale-off-strip-days',`${days}:`,timerContainer)withElementsSetInnerText('#sale-off-strip-hours',`${hours}:`,timerContainer)withElementsSetInnerText('#sale-off-strip-minutes',`${minutes}:`,timerContainer)withElementsSetInnerText('#sale-off-strip-seconds',seconds,timerContainer)}else{withElementsSetDisplay('.js-sale-off-timer','none')clearInterval(setIntervalId)}}if(useTimer){setIntervalId=setInterval(updateTimer,1000)withElementsSetDisplay('#sale-off-strip-time','',timerContainer)}})}if(window.peConfig.saleOff&&!window.peConfig.saleOff.dailyDealsActive&&window.peConfig.saleOff.endsAt-newDate().getTime()>0){init(window.peConfig.saleOff)}};;(function(){window.dataLayer=window.dataLayer||[]window.itemIdsBuffer=window.itemIdsBuffer||[]window.impressionsCounter=window.impressionsCounter||0window.track=function(options){window.dataLayer.push({event:options.event||'CustomEvent',eventCategory:options.eventCategory||'',eventAction:options.eventAction||'',eventLabel:options.eventLabel||'',eventValue:options.eventValue||'',isNonInteractionHit:options.isNonInteractionHit||false,})}window.trackCustomEvent=function(event=null){//thisfunctionisusedtotrackGAevents//let'susethisinstedofwindow.dataLayer.pushif(event){window.dataLayer.push(event)}}})();"usestrict";functionshowGuestElements(){withElementsSetDisplay(".js-only-for-user","none");withElementsSetDisplay(".js-only-for-admin","none");withElementsSetDisplay(".js-only-for-guest","");document.addEventListener("click",function(e){constcontainer=getContainer(e,"js-auth-control");if(container){e.stopPropation();e.preventDefault();container.outerHTML=container.outerHTML;showPopover(document.querySelector("#login-popover"));window.appendMTCaptcha();returnfalse;}},true);functionappendReferrerToOmniauth(){constreferrer=Cookies.get('__gtm_referrer')||''constraw_utm_string=Cookies.get('__gtm_campaign_url')||''withElements('.btn--omniauth-registration',(btn)=>{btn.href=encodeURI(`${btn.href}&referrer=${referrer}&raw_utm_string=${encodeURIComponent(raw_utm_string)}`)})}withElements(".btn--omniauth-registration",function(element){element.addEventListener("click",function(e){try{if(!e.target.dataset.handled){e.preventDefault();e.stopPropation();appendReferrerToOmniauth();e.target.dataset.handled=true;}returne.target.click()}catch(error){if(window.sendErrorToSentry){window.sendErrorToSentry(error,{ts:{section:'Omniauthlogin/registration'}})}returne.target.click()}})})}functionshowUserElements(isNotAdmin){withElementsSetDisplay(".js-only-for-guest","none");withElementsSetDisplay(".js-only-for-user","");if(isNotAdmin){withElementsSetDisplay(".js-only-for-admin","none");}}window.renderUserMenu=function(info){consttarget=withId('user-info-block');constisAlreadyInitialised=target&&target.classList.contains('is-initialised');constdividerBlock=document.createElement('div');constdividerLine=document.createElement('div');dividerBlock.classList.add('cgt-divider','cgt-mt-10','cgt-mb-10')dividerLine.classList.add('cgt-divider__color','cgt-back-color-grey-12')dividerBlock.appendChild(dividerLine);if(target&&info&&!isAlreadyInitialised){constuserMenuSection=document.createElement('div');userMenuSection.classList.add('n-options-dPhần mềm CGTrader - 3D cho dự án VR/ AR và CGropdown__section');constmenuGroups=info.forEach((group,i)=>{constgroupContent=Object.values(group);constisFirstGroup=i===0;constisLastGroup=i===info.length-1;constlinkElements=groupContent.forEach(({url,icon,text,keyword},idx)=>{if(url&&text&&keyword){constmenuLink=document.createElement('a');constlinkIcon=document.createElement('span');constisWithIcon=!!icon;menuLink.classList.add('cgt-menu-item','cgt-menu-item--medium','undecorated-text','user-menu-item','js-track-link-click');if(isWithIcon){consticonWrapper=document.createElement('div');consticonT=document.createElement('i');iconWrapper.classList.add('cgt-icon','cgt-icon__icon','cgt-icon--small','cgt-icon--not-spaced','cgt-icon--light');menuLink.classList.add('cgt-menu-item--icon-left');linkIcon.classList.add('cgt-menu-item__lead-icon');if(icon==='upload'){linkIcon.classList.add('fas','svg-inline--fa',`fa-${icon}`,'is-not-spaced','is-default','custom-font-icon','custom-font-icon--centered','custom-icon--light');}else{iconT.classList.add('custom-font-icon','custom-icon--light',`icon-${icon}`);}iconWrapper.appendChild(iconT);linkIcon.appendChild(iconWrapper);}menuLink.href=url;menuLink.innerText=text;menuLink.dataset.keyword=keyword;menuLink.dataset.trackLabel='Profile';menuLink.dataset.trackText=text;if(isWithIcon){menuLink.prepend(linkIcon);}if(isLastGroup){if(idx===groupContent.length-1){//lastelementoflastgroupconstsettingsRow=document.createElement('div');constsettingsLink=document.createElement('div');constorigLogout=document.getElementById('user-logout-action');settingsRow.classList.add('user-settings-row');settingsLink.classList.add('user-settings-row__link');settingsLink.appendChild(menuLink);settingsRow.appendChild(settingsLink);settingsRow.appendChild(origLogout);userMenuSection.appendChild(settingsRow);}else{userMenuSection.appendChild(menuLink);}}else{userMenuSection.appendChild(menuLink);if(idx===groupContent.length-1){userMenuSection.appendChild(dividerBlock.cloneNode(true));}}}});});target.appendChild(userMenuSection);target.classList.add('is-initialised');}}functionbindUserInfo(props){const{currentUserUsername,currentUseratarUrl,menuUserInfo}=propsif(menuUserInfo){renderUserMenu(menuUserInfo);}withElements(".js-current-user-href",function(element){element.href="/"+currentUserUsername;});withElementsSetInnerText(".js-current-user-username",currentUserUsername);if(currentUseratarUrl){withElementsSetDisplay(".js-current-user-initials","none");withElements(".js-current-user-atar-ime",function(element){element.src=currentUseratarUrl;});}else{withElements(".js-atar-container",function(element){element.classList.add("is-empty");});withElementsSetDisplay(".js-current-user-atar-ime","none");withElementsSetInnerText(".js-current-user-initials",currentUserUsername[0].toUpperCase());}}constsetIndicator=(elementId,value)=>{withElementsSetInnerText(elementId,value);};functionupdateCartIndicator(cartSize=""){setIndicator("#cart-indicator",cartSize);}functionbindNigationInfo({cart,inboxSize,notificationsSize,currentSegment,}){consthasNewMesses=inboxSize>0;consthasNotifications=notificationsSize>0;consthasCreditsailable=cart.creditsailable>0;varcustomEvent=newCustomEvent('nigation-cart-loaded',{detail:cart})window.dispatchEvent(customEvent)updateCartIndicator(cart.size)constcreditsailable=hasCreditsailable?cart.creditsailable.toFixed(0):"";setIndicator("#credits-indicator",creditsailable);if(hasNewMesses){setIndicator("#inbox-indicator",inboxSize);}if(hasNotifications){setIndicator("#notifications-indicator",notificationsSize);}}functiontoggleMobileN(){withElementsToggleClass('.hamburger,.mobile-curtains','is-active')withElementsToggleClass('.app-n','is-opened')document.body.classList.toggle('is-overlaid')}functiontoggleMobileSubn(e,id){e.preventDefault()withElements('.js-subn-toggle',function(element){//liif(element.id===id&&!element.classList.contains('is-subn-active')){element.classList.add('is-subn-active')withElementsSetDisplay('.js-reset-mobile-n','flex')}else{element.classList.remove('is-subn-active')}})}functionnodeScriptExec(node){withElements('script',function(el){eval(el.innerHTML)},node)}functiongoBack(){history.go(-1)}window.nodeScriptExec=nodeScriptExec;window.toggleMobileSubn=toggleMobileSubn;window.toggleMobileN=toggleMobileN;window.goBack=goBack;////searchsuggestions//(function(){functionsetSuggestions(html,searchInput){withElements(searchInput,(element)=>{element.innerHTML=htmlnodeScriptExec(element)})}document.addEventListener("click",function(e){if(e.target.classList.contains("n-search-suggestions__item")){withElements('.site-search__field',function(item){constsearchQuery=item.valueif(searchQuery.length>0&&window.searchTracker){window.searchTracker({searchTerm:searchQuery,type:'model',})}})}});functionhandleDocumentClick(e){if(!e.target.closest('.site-search')){setSuggestions('','.js-n-search-suggestions')document.removeEventListener('click',handleDocumentClick)}}constdebounced=debounce((query,searchInputId)=>{constgetResponseTextAndSetSuggestions=(responseText)=>{returnsetSuggestions(responseText,searchInputId)}constpath=window.location.pathnameconstsearch=window.location.search.replace('?','').split('&')performXHR('get',`/api/internal/items/live_search.html?query=${query}&path=${path}&search=${search}`,getResponseTextAndSetSuggestions)},300)window.searchSuggestions=function(e,searchInputId){constcurrentValue=e.target.valueif(currentValue.length>0){constsanitizedValue=currentValue.replace(/[^a-z0-9]/gi,'')debounced(sanitizedValue,searchInputId)document.addEventListener('click',handleDocumentClick)}else{constresultsContainer=document.querySelector('.js-n-search-suggestions')if(resultsContainer){resultsContainer.innerHTML=''}setSuggestions('','.js-n-search-suggestions')document.removeEventListener('click',handleDocumentClick)}}}());;(function(){window.showNotification=function(text,options){//Uglyalternativefornullcoalescing(??)onnode12constautohide=(options.autohide!==null&&options.autohide!==undefined)?options.autohide:true;consttype=options.type||'success';constappendIcon=(options.appendIcon!==null&&options.appendIcon!==undefined)?options.appendIcon:true;constnotification=document.createElement('div')notification.classList.add('notifyjs-custom-base','notifyjs-custom-'+type)notification.addEventListener('click',function(){notification.parentNode.removeChild(notification)})if(appendIcon){consticon=document.createElement('div')icon.classList.add('notification-icon')notification.append(icon)switch(type){case'success':icon.classList.add('fa','fa-check-circle')breakcase'error':icon.classList.add('fa','fa-times-circle')break}}constcontent=document.createElement('div')content.classList.add('notification-content')if(options.className){content.classList.add(options.className)}content.innerHTML=textnotification.append(content)constclose=document.createElement('div')close.classList.add('notification-close-icon','fa','fa-times')if(options.onDismiss){close.addEventListener('click',options.onDismiss)}notification.append(close)if(autohide){lettimeout=autohide===true?5000:parseInt(autohide,10)setTimeout(function(){if(notification.parentNode){notification.parentNode.removeChild(notification)}},timeout)}withId('notifications-container').append(notification)if(type!=='error'){leteventLabel=textif(/hassuccessfullybeenaddedtothecart/.test(eventLabel)){eventLabel='Itemhassuccessfullybeenaddedtothecart'}elseif(/hasalreadybeenaddedtothecart/.test(eventLabel)){eventLabel='Itemhasalreadybeenaddedtothecart'}}}})();/*!*JaScriptCookiev2.2.0*github.com/js-cookie/js-cookie**2006,2015KlausHartl&FnerBrack*ReleasedundertheMITlicense*/;(function(factory){ varregisteredInModuleLoader=false; if(typeofdefine==='function'&&define.amd){ define(factory); registeredInModuleLoader=true; } if(typeofexports==='object'){ module.exports=factory(); registeredInModuleLoader=true; } if(!registeredInModuleLoader){ varOldCookies=window.Cookies; varapi=window.Cookies=factory(); api.noConflict=function(){ window.Cookies=OldCookies; returnapi; }; }}(function(){ functionextend(){ vari=0; varresult={}; for(;i1){ attributes=extend({ path:'/' },api.defaults,attributes); if(typeofattributes.expires==='number'){ varexpires=newDate(); expires.setMilliseconds(expires.getMilliseconds()+attributes.expires*864e+5); attributes.expires=expires; } //We'reusing"expires"because"max-e"isnotsupportedbyIE attributes.expires=attributes.expires?attributes.expires.toUTCString():''; try{ result=JSON.stringify(value); if(/^[\{\[]/.test(result)){ value=result; } }catch(e){} if(!converter.write){ value=encodeURIComponent(String(value)) .replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g,decodeURIComponent); }else{ value=converter.write(value,key); } key=encodeURIComponent(String(key)); key=key.replace(/%(23|24|26|2B|5E|60|7C)/g,decodeURIComponent); key=key.replace(/[\(\)]/g,escape); varstringifiedAttributes=''; for(varattributeNameinattributes){ if(!attributes[attributeName]){ continue; } stringifiedAttributes+=';'+attributeName; if(attributes[attriPhần mềm CGTrader - 3D cho dự án VR/ AR và CGbuteName]===true){ continue; } stringifiedAttributes+='='+attributes[attributeName]; } return(document.cookie=key+'='+value+stringifiedAttributes); } //Read if(!key){ result={}; } //Topreventtheforloopinthefirstplaceassignanemptyarray //incasetherearenocookiesatall.Alsopreventsoddresultwhen //calling"get()" varcookies=document.cookie?document.cookie.split(';'):[]; varrdecode=/(%[0-9A-Z]{2})+/g; vari=0; for(;i{withElements('[type=submit]',function(el){el.disabled=disabled},form)}constconditionallyAppendInformations=()=>form.querySelectorAll('input').forEach((input)=>{if(input.name==='location'){return(input.value=window.location.pathname)}if(input.name==='utm_statistics[referrer]'){constreferrer=Cookies.get('__gtm_referrer')||''return(input.value=referrer)}if(input.name==='utm_statistics[raw_utm_string]'){constraw_utm_string=Cookies.get('__gtm_campaign_url')||''return(input.value=raw_utm_string)}})conditionallyAppendInformations()if(isSearchForm){e.preventDefault()sendSearchQueryToAnalytics(e)returnform.submit()}if(formClasses.contains('js-purchase-button-form')&&!formClasses.contains('js-add-to-cart')){e.preventDefault()constitemAttributes=window.peConfig.producttrackAddToCart(itemAttributes);}if(isJSform){e.preventDefault()try{constformData=newFormData(form)if(formClasses.contains('js-purchase-button-form')){if(window.peConfig&&window.peConfig.product&&window.peConfig.product.searchQuery){formData.set('search_query',peConfig.product.searchQuery)formData.set('index',window.peConfig.indexTrack)}}if(isAddToCart){constsendAddToCartActionToAnalytics=()=>{constparent=findAncestor('js-fast-listing-item',form)constitemAttributes=getItemData(parent)if(itemAttributes.searchQuery){formData.set('search_query',itemAttributes.searchQuery)formData.set('index',itemAttributes.index)}trackAddToCart(itemAttributes,false);}sendAddToCartActionToAnalytics()}disableFormSubmissions(true)constappendTwoFaStep=()=>{constrequiredFields=['user[login]','user[password]','user[remember_me]',]for(var[inputField,value]offormData.entries()){if(requiredFields.includes(inputField)){document.getElementById('two-fa-second-state-form')[inputField].value=value}}withElementsSetDisplay('.form__log-in','none')withElementsSetDisplay('.form__two-fa-second-state','block')}consthandleLoginSessionExpiration=()=>{//reloadpetogetvalidsessiontokenreturnwindow.location.reload()}constformSubmissionCallback=(data,status)=>{constisLoginAction=form.action.includes('/2fa-or-login')disableFormSubmissions(false)if(status===422&&isLoginAction){returnhandleLoginSessionExpiration()}data=JSON.parse(data)constisTwoFaForm=data.twoFaEnabledconsttwoFaIsValid=isTwoFaForm&&status===200constsucessfulResponse=data.jsonapi||data.success||twoFaIsValidif(sucessfulResponse){parseData(data)constmesse=data.messe||form.dataset.successmesseconstformHasOnSuccessFunction=form.dataset.onsuccess&&typeofwindow[form.dataset.onsuccess]==='function'constshouldReloadPe=form.dataset.reloadpe==='true'if(messe){showNotification(messe,{type:'success',autohide:true,})}if(data.twoFaEnabled){returnappendTwoFaStep()}if(formHasOnSuccessFunction){window[form.dataset.onsuccess]()}if(shouldReloadPe){returnwindow.location.reload()}if(data.redirectTo){disableFormSubmissions(true)window.location=data.redirectTo}}else{consterrorMesse=typeofdata.error==='string'?data.error:data.messeconstformHasOnErrorFunction=form.dataset.onerror&&typeofwindow[form.dataset.onerror]==='function'if(formHasOnErrorFunction){window[form.dataset.onerror]()}if(errorMesse){showNotification(errorMesse,{type:'error',autohide:true,})}elseif(data.errors&&data.errorsinstanceofObject&&data.errors.length){showErrorsNotifications(data.errors)}elseif(data.errors&&data.errors.custom_errors){showErrorsNotifications(data.errors.custom_errors)}else{showNotification('Somethingwentwrong,pleasetryain',{type:'error',autohide:true,})}}}constcurrentMethod=form.classList.contains('comment-form')?form.dataset.method:form.methodperformXHR(currentMethod,form.action,formSubmissionCallback,formData)returnfalse}catch(error){constisLoginAction=form.action.includes('/2fa-or-login')constisRegistrationAction=form.action.includes('/users')&&form.querySelector('button[type="submit"]').textContent.includes('Register')if(isLoginAction){constloginErrorContext={msg:'Loginerror',email:form.querySelector('[name="user[login]"]').value,}window.sendErrorToSentry(error,{ts:{section:'Fastpeslogin'},extra:loginErrorContext})}if(isRegistrationAction){constregistrationErrorContext={msg:'Registrationerror',email:form.querySelector('[name="new_user[email]"]').value,gdprConsent:form.querySelector('[name="new_user[gdpr_consent]"]').value,}window.sendErrorToSentry(error,{ts:{section:'Fastpesregistration'},extra:registrationErrorContext})}returnshowNotification('Anunexpectederrorocurred',{type:'error',autohide:true,})}}})functionresetCaptcha(id){if(document.getElementById(id)){mtcaptcha.resetUI(id)}}window.resetLoginCaptcha=function(){resetCaptcha('login-captcha')}window.resetRegistrationCaptcha=function(){resetCaptcha('registration-captcha')}})()////popovers//;(function(){window.hidePopover=function(){withElements('.popover-container.is-active',function(item){item.classList.remove('is-active')})}constshowPopoverDelay=100;letshowPopoverLastExecution=0;window.showPopover=function(container,event){if((showPopoverLastExecution+showPopoverDelay){setCart(response)window.dispatchEvent(newEvent('item-removed-from-cart'));})}functiontrackGA4ViewCart(){letcartItems=[];for(letcartIteminpeConfig.cart_items){cartItems.push(prepareItemTracking(peConfig.cart_items[cartItem],true,true)[0])}window.dataLayer&&window.dataLayer.push({event:'view_cart',ecommerce:{currency:'USD',value:peConfig.cart.totalPrice,items:cartItems}})}window.showCart=function(context){if(!context.classList.contains('is-active')){getCart()trackGA4ViewCart()}}})()////credits//;(function(){functionsetCredits(html){withId('top-menu-credits').innerHTML=htmlnodeScriptExec(withId('top-menu-credits'))}functiongetCredits(){performXHR('get','/api/internal/cg/credits.html',setCredits)}window.showCredits=function(context){if(!context.classList.contains('is-active')){getCredits()}}})()////messes//;(function(){functionsetMesses(html){withId('top-menu-messes').innerHTML=htmlnodeScriptExec(withId('top-menu-messes'))}functiongetMesses(){performXHR('get','/api/internal/conversations/user_messes.html',setMesses)}window.showMesses=function(context){if(!context.classList.contains('is-active')){getMesses()}}})()////notifications//;(function(){functionresetIndicator(){withElementsSetInnerText('#notifications-indicator','')}functionsetNotifications(html){withId('top-menu-notifications').innerHTML=htmlnodeScriptExec(withId('top-menu-notifications'))performXHR('put','/api/internal/users/check-notifications',resetIndicator)}functiongetNotifications(){performXHR('get','/api/internal/users/notifications.html',setNotifications)}window.showNotifications=function(context){if(!context.classList.contains('is-active')){getNotifications()}}})()////tabs//;(function(){window.setNTab=function(id,e){consttabs=getParentWith('#'+id,e.target)withElementPhần mềm CGTrader - 3D cho dự án VR/ AR và CGs('.cgt-tab,.tab-pane',function(item){item.classList.remove('is-active','cgt-tab--active')},tabs)e.target.closest('.cgt-tab').classList.add('cgt-tab--active')withId(id).classList.add('is-active')}window.setTab=function(id,e){consttabs=getParentWith('#'+id,e.target)withElements('.tab,.tab-pane',function(item){item.classList.remove('is-active')},tabs)e.target.closest('.tab').classList.add('is-active')withId(id).classList.add('is-active')}})();;(function(){if(window.location&&window.location.hash&&window.location.hash==='#_=_'){window.location.hash='';history.pushState(null,'','')}}());CGTrader-3DModelsforVR/ARandCGprojectsOurwebsiteusescookiestocollectstatisticalvisitordataandtrackinteractionwithdirectmarketingcommunication/improveourwebsiteandimproveyourbrowsingexperience.PleaseseeourCookieNoticeformoreinformationaboutcookies,datatheycollect,whomayaccessthem,andyourrights.LearnmoreAccept3DModelsByType3DModels3DPrintReadyPBRLow-polyDiscountsFreeShowallByCategoryAircraftAnimalsArchitecturalExteriorInteriorCarCharacterFoodFurnitureHouseholdIndustrialPlantSpaceVehicleWatercraftMilitaryOtherScannedScripts&AppsCGTexturesBestdesignersShowallCustom3DHirea3DfreelancerWorkdirectlywitha3Dartistforyourproject.MorePostprojectOrder3DmodelsNomatterhowmany3Dmodelsyouneed,we'lltakecareofit.MoreGetquoteForDesignersEarnwithCGTraderFreelanceonCGTraderWorkonModelryCommunityDesignersGalleriesTutorialsChallengesForumBlogCGDream.aiCGDream.aiLoginLoginRegisterEmailorUsername*Password*ForgotpasswordRemembermeLoginEnteryourloginverificationcodeVerifyUsername*Email*EmailConfirmation*Wouldyouliketogetupdates,communitynews,andoffers?YesNoRegisterByregisteringIconfirmthatIhereadandaccepttheTermsofUse.Forotherdetails,pleasealsoseeourPrivacyPolicy.MyaccountLogoutSearchCreatedbyZippyLeeDiscountsAircraftAnimalsArchitecturalExteriorInteriorCarCharacterFoodFurnitureHouseholdIndustrialPlantSpaceVehicleWatercraftMilitaryBlenderZbrushCinema4DSketchupBrowseallExploreCGDream,whereAImeets3Dmodels.CGDreamisacutting-edgeapplicationthatleveresthepowerofgenerativeAIand3Dmodelstoproducestunning2Dimes.Yourcreativejourneystartsnow.GetstartedforFree!LookingForCustom3DModelingatScale?IntroducingModelryPowering3Dtransformationandcommercegrowththroughaffordable,scalable,quality3DandARexperiencesGetStartedHere3DModelMarketplaceChoosefrom21600003Dmodelsforapplicationssuchasgaming,AR/VR,advertising,animation,moviesand3Dprinting3DModelsBuyprofessional3DModelsforyourprojectViewAll>Low-polyPBR3DModelsLow-polyPBR3DModelsreadyforvideogames,VR&ARreal-timeapplicationsViewAll>3DPrintingModelsFind3DPrintDesignsforyour3DPrinterViewAll>3DProjectsFreelanceHubWherepeoplewithexciting3DProjectsmeettalented3DdesignersLearnmoreSellyour3DModelsandFindFreelanceProjectsSellyour3Dmodelsandearnupto80%royaltiesSell3DModels>WorkwithenterpriseclientsGetQualified>Outsourceyourskills&getupto95%royaltiesBrowse3DModelingJobs>BuildyourportfolioandbevisibleBrowse3DDesigners>JoinCGTraderCommunityGalleriesShowcaseyourbestrenders,getfeedbackandrecognitionTutorialsLearnnewskillsandteachothersForumFindtutorialsanddiscussother3DrelatedmattersJointhecommunity{"@context":"httpschema.org","@type":"WebSite","url":"/","potentialAction":{"@type":"SearchAction","target":"/search?keywords={search_term_string}","query-input":"requiredname=search_term_string"}}window.addEventListener("load",function(){performXHR('get','/homepe/index.js',function(jascript_state){eval(jascript_state);})});window.zESettings={webWidget:{color:{theme:'#19bcc9',launcherText:'#fff',},offset:{horizontal:'50px',vertical:'36px'}}}functionloadZendesk(callback){if(window.zE){returncallback()}varscript=document.createElement("script")script.src='static.zdassets.com/ekr/snippet.js?key=a08a4a36-d875-4539-8ee0-d743fba2ad4c'script.id='ze-snippet'script.onload=script.onreadystatechange=function(){script.onreadystatechange=script.onload=nullcallback()}document.body.appendChild(script)}functionloadZendeskAndToggle(){loadZendesk(function(){zE('webWidget','toggle')})}HelpEndsupportsessionCGTrader-3DModels/3DDesignersCompanyBlogEventsPressCareersHelpCenterContactusBuy3DModelsFreelance3DProjectsFree3DModelsBusinessaccountDiscountsSell3DModelsCommunity3DdesignersForumFreelancewithusLoyaltypointsprogramModelry3DViewer3DProductVisualization3DDigitalAssetManementCustom3DModelingVirtualPhotographyCGTrader-3DModels/3DDesigners©CGTrader2011-2024Terms&ConditionsPrivacy🇺🇸English🇩🇪Deutsch🇪🇸Español🇫🇷Français🇵🇹Português🇷🇺Русский🇯🇵語🇨🇳中文if(!Cookies.get('_cgtrader_cpsa48')){withElementsRemoveClass('.js-inline-cookies','is-hidden')}window.embeddedChatbotConfig={chatbotId:"2slNtxnBI9oYOdAKJkO",domain:""};functionwaitForElementToDisplay(selector,callback,checkFrequencyInMs,timeoutInMs){varstartTimeInMs=Date.now();(functionloopSearch(){if(document.querySelector(selector)!=null){callback();return;}else{setTimeout(function(){if(timeoutInMs&&Date.now()-startTimeInMs>timeoutInMs)return;loopSearch();},checkFrequencyInMs);}})();}functionadjustPlaceholder(){varchatbotPlaceholder=document.getElementById('chatbot-placeholder');functionactivateChatbot(){varchatbotButton=document.getElementById('chatbase-bubble-button');if(window.customEventTracker){window.customEventTracker({name:'contact_support_open',eventData:{}})}chatbotPlaceholder.parentNode.removeChild(chatbotPlaceholder);chatbotButton.click();}waitForElementToDisplay('#chatbase-bubble-button',activateChatbot,500,9000);}functionloadChatbot(){varpo=document.createElement('script');po.type='text/jascript';po.async=true;po.src='//chatbase.co/embed.min.js';po.chatbotId='2slNtxnBI9oYOdAKJkO';po.domain='';po.defer=true;vars=document.getElementsByTName('script')[0];s.parentNode.insertBefore(po,s);po.onload=po.onreadystatechange=function(){po.onreadystatechange=po.onload=nulladjustPlaceholder()}}if(Cookies.get('sale_off_visible')==='true'){varheader=document.querySelector('.site-nigation');varnotifications_container=document.querySelector('#notifications-container');if(notifications_container&&header){notifications_container.classList.add('with-bar');header.classList.add('with-bar');}}if(Cookies.get('seo_banner_visible')==='true'){vartop_category_banner=document.querySelector('#top-category-banner');if(top_category_banner){top_category_banner.classList.remove('is-hidden');}}