package comm import ( "time" "go.mongodb.org/mongo-driver/bson/primitive" ) type RenderComponent struct { Name string `bson:"name,omitempty" json:"name"` FabricId *primitive.ObjectID `bson:"fabricId,omitempty" json:"fabricId,omitempty"` CardId *primitive.ObjectID `bson:"cardId,omitempty" json:"cardId,omitempty"` MatType uint8 `bson:"matType,omitempty" json:"matType"` Imagemat *ImageMatConf `bson:"imageMat,omitempty" json:"imageMat,omitempty"` Uvtransform *Uvtransform `bson:"transform,omitempty" json:"transform"` Color *Vect3 `bson:"color,omitempty" json:"color"` GroupId uint64 `bson:"groupId,omitempty" json:"groupId"` Visible *bool `bson:"visible,omitempty" json:"visible"` Card *MaterialConf `bson:"card,omitempty" json:"card"` } type RenderShoeComp struct { Name string Config *RenderComponent } type RenderModelComp struct { Id string `bson:"id,omitempty" json:"id"` MeshId *primitive.ObjectID `bson:"meshId,omitempty" json:"meshId,omitempty"` MeshUrl string `bson:"meshUrl,omitempty" json:"meshUrl,omitempty"` Type string `bson:"type,omitempty" json:"type"` TypeId *primitive.ObjectID `bson:"typeId,omitempty" json:"typeId,omitempty"` Transform ModelTransform `bson:"transform,omitempty" json:"transform,omitempty"` Components []*RenderShoeComp `bson:"components,omitempty" json:"components,omitempty"` } const ( TaskRunState_Created = 0 TaskRunState_Quened = 1 TaskRunState_WorkRuning = 2 TaskRunState_ReWorkRuning = 3 TaskRunState_Succ = 4 TaskRunState_Fail = 5 ) type TaskRunResult struct { Images []*OssType } type ConvMeshRunResult struct { Osgjs *OssType Thumbnail *OssType File *OssType } type RenderSceneLight struct { Type string `bson:"type,omitempty" json:"type"` Direction Vect3 `bson:"direction,omitempty" json:"direction"` Color Vect3 `bson:"color,omitempty" json:"color"` Intensity float64 `bson:"intensity,omitempty" json:"intensity"` AngularDiameter float64 `bson:"angularDiameter,omitempty" json:"angularDiameter"` } type RenderTask struct { Id primitive.ObjectID `bson:"_id,omitempty" json:"_id"` UserId primitive.ObjectID `bson:"userId,omitempty" json:"userId"` DesignId primitive.ObjectID `bson:"designId" json:"designId"` WebId int64 `bson:"webId" json:"webId"` RunState int32 `bson:"runState" json:"runState"` RunPercent int32 `bson:"runPercent" json:"runPercent"` RunResult *TaskRunResult `bson:"runResult" json:"runResult"` Width int32 `bson:"width" json:"width"` Height int32 `bson:"height" json:"height"` CreateTime time.Time `bson:"createTime" json:"createTime"` Scene *DesignScene `bson:"scene" json:"scene"` MeshId string `bson:"meshId" json:"meshId"` MeshUrl string `bson:"meshUrl" json:"meshUrl"` MeshShadow string `bson:"meshShadow" json:"meshShadow"` Cameras []*RenderCamera `bson:"cameras" json:"cameras"` Lights []*RenderSceneLight `bson:"lights" json:"lights"` ShoeComps []*RenderShoeComp `bson:"shoeComps" json:"shoeComps"` ModelComps []*RenderModelComp `bson:"modelComps" json:"modelComps"` MaxSamples int32 `bson:"maxSamples" json:"maxSamples"` Exposure float32 `bson:"exposure" json:"exposure"` Format string `bson:"format" json:"format"` //渲染格式 png jpg } type TreeRenderTask struct { Id primitive.ObjectID `bson:"_id,omitempty" json:"_id"` UserId primitive.ObjectID `bson:"userId,omitempty" json:"userId"` AssetId primitive.ObjectID `bson:"assetId" json:"assetId"` RunState int32 `bson:"runState" json:"runState"` RunPercent int32 `bson:"runPercent" json:"runPercent"` RunResult *TaskRunResult `bson:"runResult" json:"runResult"` Width int32 `bson:"width" json:"width"` Height int32 `bson:"height" json:"height"` CreateTime time.Time `bson:"createTime" json:"createTime"` Package *AssetPackage `bson:"pack" json:"pack"` SceneId string `bson:"sceneId" json:"sceneId"` Lights []*RenderSceneLight `bson:"lights" json:"lights"` Cameras []*RenderCamera `bson:"cameras" json:"cameras"` MaxSamples int32 `bson:"maxSamples" json:"maxSamples"` Exposure float32 `bson:"exposure" json:"exposure"` Format string `bson:"format" json:"format"` //渲染格式 png jpg DevicePixelRatio *float32 `bson:"devicePixelRatio" json:"devicePixelRatio"` //渲染格式 png jpg } type RenderSetting struct { MaxSamples int32 `bson:"maxSamples" json:"maxSamples"` //32 Exposure float32 `bson:"exposure" json:"exposure"` //1.2 } type RenderCamera struct { Thumbnail *OssType `bson:"thumbnail" json:"thumbnail,omitempty"` // Position *Vec3Obj `bson:"position" json:"position,omitempty"` // Fov float32 `bson:"fov" json:"fov"` //45 Direction *Vec3Obj `bson:"direction" json:"direction,omitempty"` Viewport CameraViewPort `bson:"viewport" json:"viewport"` AspectRatio *float32 `bson:"aspectRatio" json:"aspectRatio,omitempty"` } type CameraViewPort struct { Width int32 `bson:"width" json:"width"` Height int32 `bson:"height" json:"height"` } type SunLight struct { Type string `bson:"type" json:"type"` Intensity float32 `bson:"intensity" json:"intensity"` Direction Vec3Obj `bson:"direction" json:"direction"` AngularDiameter float32 `bson:"angularDiameter" json:"angularDiameter"` Color Vect3 `bson:"color" json:"color"` } type RenderEnv struct { Color Vect3 `bson:"color" json:"color"` Rotation float32 `bson:"rotation" json:"rotation"` Intensity float32 `bson:"intensity" json:"intensity"` FilePath string `bson:"filePath" json:"filePath"` Visiable bool `bson:"visiable" json:"visiable"` } type Vec3Obj struct { X float64 `bson:"x" json:"x"` Y float64 `bson:"y" json:"y"` Z float64 `bson:"z" json:"z"` } type Vec4Obj struct { X float64 `bson:"x" json:"x"` Y float64 `bson:"y" json:"y"` Z float64 `bson:"z" json:"z"` W float64 `bson:"w" json:"w"` } type RenderMatParam struct { Name string `bson:"name" json:"name"` Type string `bson:"type" json:"type"` Value interface{} `bson:"value" json:"value,omitempty"` } type RenderMat struct { Name string `bson:"name" json:"name"` Type string `bson:"type" json:"type"` UVProjection string `bson:"uvProjection" json:"uvProjection"` //"box", "uv" Parameters []*RenderMatParam `bson:"parameters" json:"parameters"` } type RenderGroup struct { Name string `bson:"name" json:"name"` Position Vec3Obj `bson:"position" json:"position"` Rotation Vec4Obj `bson:"rotation" json:"rotation"` Scale Vec3Obj `bson:"scale" json:"scale"` Materials []*RenderMat `bson:"materials" json:"materials"` FilePath string `bson:"filePath" json:"filePath"` } type RenderConf struct { Setting *RenderSetting `bson:"setting" json:"setting"` Camera *RenderCamera `bson:"camera" json:"camera"` Lights []*RenderSceneLight `bson:"lights" json:"lights"` Enviroment *RenderEnv `bson:"enviroment" json:"enviroment"` Groups []*RenderGroup `bson:"groups" json:"groups"` Shadow *Shadow `bson:"shadow" json:"shadow"` } type WorkerRequest struct { Name string `json:"name"` UserId string `json:"userId"` SessionId int64 `json:"sessionId"` TaskId string `json:"taskId"` MainId string `json:"mainId"` TaskCollection string `json:"taskCollection"` WorkerType string `json:"workerType"` CreateTime time.Time `json:"createTime"` } type WorkerResponse struct { ErrorNo int `json:"errorNo"` ErrorDesc string `json:"errorDesc"` Result struct { WorkingId string `json:"workingId"` } `json:"result"` } type Shadow struct { Size *Vect2 `bson:"size,omitempty" json:"size,omitempty"` Position *Vect3 `bson:"position,omitempty" json:"position,omitempty"` File string `bson:"file,omitempty" json:"file,omitempty"` }